上一个值:“ selected:false”。当前值:“ selected:true”,同时设置要选择的值

时间:2019-02-26 19:23:51

标签: angular

if (this.contactForm.controls.contacts.controls[0].controls) {
  const contactForm = this.contactForm.controls.contacts.controls[0].controls;
  contactForm.contactType.setValue(contact.ContactType);
  contactForm.email.setValue(contact.ContactEmail);

  const provider = this.providers.filter(p => p.PhoneProvider === contact.PhoneProvider)[0];
  contactForm.phoneProvider.setValue(provider);
  contactForm.phone.setValue(contact.ContactPhone);
  this.openContact(dialog, alert);
  this.cd.detectChanges();
}

我正在设置一个值以动态选择将抛出的输入:

  

错误错误:ExpressionChangedAfterItHasBeenCheckedError:表达   检查后已更改。上一个值:“ selected:false”。   当前值:“ selected:true”。

我使用this.cd.detectChanges();来避免此错误,但仍然可以解决。如果不使用过滤器,则不会出现此错误。使用Timeout可能会解决问题,但这是一种怪诞的方式。

这是我在模板(有效表格)中的使用方式:

<nb-select outline placeholder="Select Provider" formControlName="phoneProvider">
    <nb-option *ngFor="let p of providers" [value]="p">{{p.PhoneProvider}}</nb-option>
</nb-select>

该模板位于“对话框”中的同一组件中,其余设置值均有效,甚至PhoneProvider均已设置,但控制台中存在错误。

0 个答案:

没有答案