title: How to define required FormControls for non-required FormGroup?
body: <p>In my application I have a <code>FormGroup</code> that isn't required to submit the form, but, if the user attempts to fill out any part of that group, there are specific fields that need to be present in it, or the group should be considered invalid.</p>
  
  <p>Is there a way to define required fields for a non-required <code>FormGroup</code> so that I can guarantee data integrity?</p>
  
  <p>This is my Group</p>
  
  <pre><code>FormGroup({
      officeId: new FormControl("", [Validators.required]),
      fileOwner: fileOwner,
      secondaryOwner: secondaryOwner,
      managedByPrimary: new FormControl(true, [Validators.required])
  });
  </code></pre>
  
  <p>Here is my <code>FileOwner</code> <code>FormGroup</code>, which I've labeled as a <code>required</code> group</p>
  
  <pre><code>let fileOwner: FormGroup = new FormGroup({
      FirstName: new FormControl("", [Validators.required]),
      LastName: new FormControl("", [Validators.required]),
      IdentificationNumber: new FormControl("", [Validators.required]),
      PhoneNumber: new FormControl(""),
      EmailAddress: new FormControl("")
  }, [Validators.required]);
  </code></pre>
  
  <p>Here I am attempting to more-or-less say this group is required for the form to be submitted, and in this group the <code>FirstName</code>, <code>LastName</code> and <code>IdentificationNumber</code> are required.</p>
  
  <p>The <code>SecondaryOwner</code> is closely modeled after this as it is the same model with different validation requirements</p>
  
  <pre><code>let secondaryOwner: FormGroup = new FormGroup({
      FirstName: new FormControl("", [Validators.required]),
      LastName: new FormControl("", [Validators.required]),
      IdentificationNumber: new FormControl("", [Validators.required]),
      PhoneNumber: new FormControl(""),
      EmailAddress: new FormControl("")
  });
  </code></pre>
  
  <p>Here I've not made the group required, but indicated that specific fields are required. My intent was to more-ore-less say, "This group isn't required, but if you fill it out these are necessary fields for the group to be considered valid"</p>
  
  <p>How would I accomplish this kind of behaviour? Right now the <code>SecondaryOwner</code> instantiates as <code>Invalid</code> which makes sense. But essentially, unless any one of its controls become dirty I don't want it to be considered for validations.</p>