为角度2+中的ngmodel设置动态变量引用

问题描述 投票:1回答:2

我有一个表的标题,必须根据json {id,name}来填充this.id是我在组件中使用的ngModel名称,需要分别映射到自定义过滤器。

说,

 list=[{id:ageSearch,name:age},{id:adressSearch,name:adress}]

因此,当我输入第一个输入文本字段的值时,将填充ageSearch并且必须过滤数据,类似于adressSearch现在我想知道如何在ngfor中动态映射变量ageSearch,adressSearch。

我试过用

 <div *ngFor="let item of list;let index = index;trackBy:trackByIndex;">
      <input [(ngModel)]="item[id]" placeholder="item">
    </div>

但是,它填充值ageSearch而不是绑定变量。任何人都可以说我是否正在尝试一些可行或不可行的事情。如果是这样,我怎样才能实现预期的流量。

预期的结果应该是

<div>
     <input [(ngModel)]="ageSearch" placeholder="item">
</div>
<div>
     <input [(ngModel)]="adressSearch" placeholder="item">
</div>

编辑:在组件中我将变量声明为let ageSearch:any;让adressSearch:any;

这些值将传递给自定义筛选器。所以我要设置输入的ngModel来绑定这些变量名,这样它们最初在加载时显示为空白,当我们输入值时,它们反映了ageSearch和adressSearch的值。然后将其传递给自定义过滤器。谢谢。

angular angular5 angular2-template angular2-forms
2个回答
0
投票

把它改成这个:

<input [(value)]="item.id" placeholder="item">

或者对此:

<input [(value)]="item['id']" placeholder="item">

如果您确实需要在示例中使用ngModel,那么您还需要为其命名:

<input [(ngModel)]="item.id" name="{{item.name}}" placeholder="item">

0
投票

经过一番打击和试用后,我通过更换电池来实现这一目标

<input [(ngModel)]="item.id" name="{{item.name}}" placeholder="item">

<input [(ngModel)]="this[item.id]" name="{{item.name}}" placeholder="item">

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.