在角度 2+ 中为 ngmodel 设置动态变量参考

Posted

技术标签:

【中文标题】在角度 2+ 中为 ngmodel 设置动态变量参考【英文标题】:set dynamic variable reference for ngmodel in angular 2+ 【发布时间】:2019-02-19 13:06:33 【问题描述】:

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

说,

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

所以当我输入第一个输入文本字段的值时,ageSearch 将被填充并且它必须过滤数据,类似于 addressSearch 现在我想知道如何在 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>

编辑: 在组件中,我将变量声明为 让年龄搜索:任何; 让地址搜索:任何;

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

【问题讨论】:

【参考方案1】:

经过一番尝试和尝试,我通过更换

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

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

谢谢。

【讨论】:

【参考方案2】:

改成这样:

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

或者到这个:

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

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

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

【讨论】:

感谢 dexter 但它不起作用,我已经编辑了流程的解释,我想将变量引用映射到输入而不是值。

以上是关于在角度 2+ 中为 ngmodel 设置动态变量参考的主要内容,如果未能解决你的问题,请参考以下文章

如何在角度6中为选择选项设置默认选定对象

用于 textarea 的 ngModel 不能在角度 2 中工作

当有ngModel时,检查角度2中的单选按钮

角度 2 的“修剪”指令并反映对 ngModel 的更改

在角度 2 中单击时访问复选框值

如何使用 ngModel 在 div 的 innerhtml 属性上实现 2 路数据绑定?