使用AngularJS插值绑定,`{{}}`,带点符号

时间:2017-10-06 19:02:13

标签: javascript angularjs

我想使用带有点符号的AngularJS interpolation binding

<div ng-repeat="item in items">
  <input type="checkbox" ng-model="form.city.{{item.region}}.enabled">
</div>

ng-model给了我错误。我做错了什么?

2 个答案:

答案 0 :(得分:3)

ng-model值被视为角度expression,因此无需使用大括号。

ng-model="form.city[item.region].enabled"应该可以正常使用。

答案 1 :(得分:0)

来自文档:

  

为什么混合插值和表达式是不好的做法:

     
      
  • 它增加了标记的复杂性
  •   
  • 无法保证它适用于每个指令,因为插值本身就是一个指令。如果另一个指令在插值运行之前访问属性数据,它将获得原始插值标记而不是数据。
  •   
  • 它会影响性能,因为插值会为范围添加另一个观察者。
  •   
  • 由于不推荐使用,我们不对此进行测试,对AngularJS核心的更改可能会破坏您的代码。
  •   
     

— AngularJS Developer Guide - mixing interpolation and expressions