带有动态变量的ngModel

时间:2017-11-10 10:48:11

标签: angular typescript ngmodel

当使用ngModel使用bumpDetail.name数组中的属性get来冒充对象时,我遇到了一些问题。

我已将我的代码段粘贴到下方。
有人可以帮我检查一下,告诉我哪里做错了吗?谢谢。

<p *ngFor="let bumpDetail of bumpDetail">
    <input type="checkbox" id="device" [(ngModel)]={{bump.bumpDetail.name}}/>
    <label for="device">{{bumpDetail.name}}</label>
</p>
 Bump[] = [{
"name": "bump_1",
"status": true
}, {
"name": "bump_2",
"status": false
 }, {
"name": "bump_3",
"status": true
}]

这是错误。

  

分析器错误:插值({{}})其中表达式位于[{{bumpDetail.name}}]中第0列的ng:///AppModule/SettingComponent.html@129:59(“p * ngFor =“让bumpDetail的bumpDetail”&gt;

3 个答案:

答案 0 :(得分:6)

[]{{}} 从不一起使用。一个或另一个

[(ngModel)]="this[bumpDetail.name]"

{{}}仅用于字符串插值。

答案 1 :(得分:1)

[(ngModel)]={{bumpDetail.name}}

出错

应该是:[(ngModel)]="bumpDetail.status"

在使用{{}}或任何其他ng-directive时,您不需要[(ngModel)]

其次我认为这里可能存在问题<p *ngFor="let bumpDetail of bumpDetail">验证您的变量名称是否正确,而且这两个名称不一样。

我会将其更改为:<p *ngFor="let bumpDetail of bumpDetailArray">其中bumpDetailArray是数组

答案 2 :(得分:0)

首先获取基础知识{{}}是一个表达式,[(ngModel)]用于双向绑定,其中()发出,[]用于绑定。你需要做的就像[(ngModel)]="bumpDetail.name"如果你想打印它,那么你需要使用像{{bumpDetail.name}}这样的表达式。你不能像上面一样使用它们。