Angular-绑定到索引处的字符串数组

时间:2018-09-23 19:07:58

标签: angular typescript

我是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>

1 个答案:

答案 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()}} ,将其插入模板后,所有内容都会自动转换为字符串。