我有一个表的标题,必须根据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的值。然后将其传递给自定义过滤器。谢谢。
把它改成这个:
<input [(value)]="item.id" placeholder="item">
或者对此:
<input [(value)]="item['id']" placeholder="item">
如果您确实需要在示例中使用ngModel,那么您还需要为其命名:
<input [(ngModel)]="item.id" name="{{item.name}}" placeholder="item">
经过一番打击和试用后,我通过更换电池来实现这一目标
<input [(ngModel)]="item.id" name="{{item.name}}" placeholder="item">
同
<input [(ngModel)]="this[item.id]" name="{{item.name}}" placeholder="item">
谢谢。