I stumbled upon this problem when trying to make the presence of a button depend on the state of the form: However, we should not use DOM manipulation (document.xyz()) in angular. I just wanted to propose yet another method. For example, when you have a large amount of data and there is a change in that data, angular will render the view again, if the data changes every second, your application will become slower. The fact is that what works has changed a number of times as the Angular team has changed its Router. ; When user selects 4 options one by one then All shall be selected. But avoid . I broke out the code above into a recursive function and call it on any sub-FormGroups. Although @Vega provides the direct answer to your question, there are issues. Update. @ViewChild(selector: string | Function | Type