我是Angular(5.x)的新手,我试图将输入值绑定到索引为{rule.values
的字符串数组(i
),但是当我更改输入时,数组值不要改变,所以我认为绑定失败。感谢您的帮助或提示。谢谢
<div *ngFor="let _ of rule.value; let i = index;" id="values">
<div class="row">
<div class="col-sm-3">
Value #{{(i + 1).toString()}}
</div>
<div class="col-sm-6">
<input type="text" class="form-control" id="values{{i}}" [ngModel]="rule.value[i]" name="values{{i}}" required>
</div>
<div class="col-sm-3">
<button type="button" class="btn btn-default" (click)="rule.value.splice(i, 1)">
<span class="glyphicon glyphicon-minus" aria-hidden="true"></span>
</button>
</div>
</div>
</div>
答案 0 :(得分:3)
当我更改输入时,数组值不会更改
您仅指定了模型中的任何内容都应使用Feature__c[] features = new Feature__c[]{};
features = [Select id, (...)
反映到视图中。 [ngModel]="rule.value[i]"
方括号显示“模型->视图”关系。
如果要“捕获”从视图到模型的值更改,则也需要使用[]
括号。
()
这是所谓的“盒子里的香蕉”语法,因为[(ngModel)]="rule.value[i]
很像香蕉,(
是盒子。
像这样同时使用[]
和[]
基本上是编写“模型->视图”和“视图->模型”绑定的快捷方式。
以上代码的完整版本为:
()
顺便说一句:
[ngModel]="rule.value[i]"
(ngModelChange)="rule.value[i] = $event"
您无需调用Value #{{(i + 1).toString()}}
,将其插入模板后,所有内容都会自动转换为字符串。