从数据库记录不绑定到Angular中的选择控件

时间:2017-09-25 17:24:32

标签: angular

我有一个包含输入字段和选择控件的编辑表单。如您所知,这些控件应该使用数据库中的记录填充。输入字段中包含各自的数据,但选择控件则没有。

这是我的一个选择控件

<select id="taxAuthorityId" name="taxAuthorityId" [(ngModel)]="tax.taxAuthorityId" class="form-control">
   <option *ngFor="let b of taxAuthorities" value={{b.Id}}>{{b.name}}</option>
</select>

tax是一个包含数据的对象,我通过在控制台中记录它来确认它,并返回所有字段,包括taxAuthorityId在这种情况下。但它没有在控件上选中。如何才能使其适用于我选择的所有控件?

税对象的TypeScript代码

show(id: number): void {
    this._taxService.get(id)
      .subscribe((result: TaxDto) => {
          this.tax = result;
          console.log(this.tax);
      });

  }

1 个答案:

答案 0 :(得分:1)

通常,值属性值会被字符串化,因此当您将b.id放入其中时,它会变为'1'而不是1。因此,当预先选择值1 ==='1'时,该表达式不会得到满足。将value更改为[ngValue]="b.Id"将有助于保留值类型。

<select id="taxAuthorityId" name="taxAuthorityId" 
   [(ngModel)]="tax.taxAuthorityId" class="form-control">
      <option *ngFor="let b of taxAuthorities" 
        [ngValue]="b.Id">
          {{b.name}}
      </option>
</select>

Demo Plunker