2016-04-29 4 views
0

У меня есть один верхний компонент ведьма состоит из ряда компонентов, например:Угловые 2 - Как получить доступ детских компонентов образуют ControlGroup

<div> 
<legend>Component A</legend> 
<div> 
    <label>Value1</label> 
    <input ngControl="v1" [(ngModel)]="model.v1" /> 
</div> 
<div> 
    <label>Value2</label> 
    <input ngControl="v1" [(ngModel)]="model.v2" /> 
</div> 
<div> 
    <label>Value3</label> 
    <input ngControl="v1" [(ngModel)]="model.v3" /> 
</div> 
<legend>Component B</legend> 
<component-b-form [data]="somedata"></component-b-form> 
<legend>Component C</legend> 
<component-c-form [data]="somedata"></component-c-form> 
<legend>Component D</legend> 
<component-d-form [data]="somedata"></component-d-form> 
</div> 

Моего корневой компонент имеет форму с одним ControlGroup и ряд элементов управления. Каждый дочерний компонент имеет также одну форму с ControlGroup.

Я хочу, чтобы запускать все мои дочерние компоненты контрольных групп действительного метода, чтобы инициировать проверку во всех моих формах.

Это может быть возможно, если я могу получить доступ к ControlGroups из корневого компонента и вызвать то, что мне нужно для проверки проверки.

this.controlGroup1 = this.fb.group({ 
    'v1': ['', Validators.required], 
    etc... 
}); 
+1

Похоже http://stackoverflow.com/questions/36915769/how-to-iterate-and- справочно-массива из-controlgroup-в-HTML/36916477 # 36916477 –

ответ

1

Вы можете ссылаться на ваши компоненты с помощью @ViewChild и получить доступ к контрольной группе на них:

@Component({ 
}) 
export class SomeComponent { 
    @ViewChild(ComponentBForm) 
    componentbForm:ComponentBForm; 
    (...) 

    ngAfterViewInit() { 
    let valid = this.componentbForm.form.valid; 
    (...) 
    } 
} 
Смежные вопросы