title: Angular2 FormBuilder Validators: require at least one field in a group to be filled
body: <p>I have a form where I'm collecting phone numbers (mobile, personal, other).  I need to have at least input populated.  I'm trying to use Angular2 FormBuilder.</p>
  
  <p>After much research I'm having a problem getting my head around this problem.  I know I can do it using other methods but I was wondering if it's possible using FormBuilder Validators.  If I add "Validators.required" then all 3 fields are required. Any suggestions or ideas?</p>
  
  <pre><code>phone: this._fb.group(
                      {
                          other: [''],
                          personal: [''],
                          mobile: [''],
                      }
  </code></pre>
  
  <p>Base on the hint from " JB Nizet", here's what I had to implement to make it work:</p>
  
  <p>My group Validator (it still needs tweaking):</p>
  
  <pre><code>static phoneExists(group: FormGroup): { [key: string]: any } {
  
      if (null != group) {
          var other: AbstractControl = group.controls['other'];
          var mobile: AbstractControl = group.controls['mobile'];
          var personal: AbstractControl = group.controls['personal'];
          var data: Object = group.value;
  
          return (
              (other.valid &amp;&amp; isEmptyInputValue(other.value))
              &amp;&amp; (mobile.valid &amp;&amp; isEmptyInputValue(mobile.value))
              &amp;&amp; (personal.valid &amp;&amp; isEmptyInputValue(personal.value))
              )
              ? { 'required': true }
              : null;
      }
  }
  </code></pre>
  
  <p>My group change:</p>
  
  <pre><code>phone: this._fb.group(
                      {
                          other: [''],
                          personal: [''],
                          mobile: [''],
                      },
                      { validator: MyValidators.phoneExists }
                  )
  </code></pre>
  
  <p>It took me a while, but the key is to add the key word "validator" and it will cause the group validator to fire.</p>
  
  <p>In the HTML i added the following:</p>
  
  <pre><code>&lt;small *ngIf="!myForm.controls.profile.controls.phone.valid" class="text-danger"&gt;
                                          At least one phone is required.
                                      &lt;/small&gt;
  </code></pre>
  
  <p>I hope this help anyone else.</p>