Это подходящий способ, да. Вы can't combine
два оператора CONNECT в одном.
Почему вы не используете типы?
Почему у вас есть [disabled]="irule.type[i]
, но тип это строка, и в вашей инициализации у вас есть пустое значение, поэтому следует вернуть OutOfRangeException
в JavaScript
Почему вы не удалили ngModel
из ngForm
? например :
@ViewChild(NgForm) form : NgForm;
removeExample(index: number){
let currentControlName: string = `iruleValue${i}`
let control:NgModel = this.form.controls[currentControlName];
control && this.form.removeControl(control)
this.campaign.includeRules.splice(i, 1)
this.changeDetectorRef.detectChanges()
}
Вам нужно использовать trackBy
, чтобы сообщить angular для отслеживания индекса, поэтому для вашей итерации просто добавьте:
*ngFor="let irule of campaign.includeRules; index as i; trackBy: myTrackByFn"
и в компонент:
myTrackByFn(index) {
return index;
}