Я пытаюсь создать массив, в котором есть массивы.Свойство 'push' не существует в типе 'Control'
Массив для динамической формы, поэтому, когда пользователь хочет добавить новый раздел, он массирует управляющие поля массиву и генерирует его в Angular2.
Однако я получаю эту ошибку: Error:(43, 41) TS2339: Property 'push' does not exist on type 'AbstractControl'.
Это мой код:
addDesign(){
this.addForm.controls['design'].push(this.fb.group({
name: this.fb.control(null, Validators.required),
a1: this.fb.control(null, Validators.required),
a2: this.fb.control(null, Validators.required),
a3: this.fb.control(null, Validators.required),
a4: this.fb.control(null, Validators.required),
a5: this.fb.control(null, Validators.required),
maxMark: this.fb.control(null, Validators.required)
}));
}
Моего Constructor, инициализации формы
constructor(private fb: FormBuilder, private auth: Auth, private authHttp: AuthHttp) {
this.addForm = fb.group({
name: fb.control(null, Validators.required),
assignID: fb.control(null, Validators.required),
design: new ControlArray([])
})
}
Я пытался делать (<Control>this.addForm.controls['design']).push
как предложено в Angular2 issue 5871, но это не решило.
Я использую машинопись и Angular2 beta.17
Спасибо за ваш ответ .. http://i.stack.imgur.com/cAGjX.jpg проверить это изображение, хотя оно должно быть в порядке в соответствии с этой схемой, и это не работа, это нажать на-х массив , я забыл упомянуть об этом, но ошибка в inteferring с моей проверкой компилятора типов. Я попытался использовать addControl, и мне не нравятся манипуляции с массивами. Спасибо хоть! –
Хорошо. Попробуйте выполнить кастинг, который вы делали раньше, но вместо '( this.addForm.controls ['design'])' do '( this.addForm.controls ['design'])' –
Paarth
вы легенда! Я не знаю, почему я так не думал об этом, спасибо! если вы отредактируете свой основной пост, я могу пометить его как правильно для других, если у них есть одна проблема –