我正在学习Angular,并且遇到了一些问题。我正在尝试创建一组表示javascript对象中不同级别的指令。该对象包含许多不同的属性,这些属性取决于模型其他部分的状态。例如,如果其中一个子属性处于错误状态,则父属也是。我有一个非常简化的例子HERE。任何帮助将不胜感激。特别是如果有人可以解释这个例子出了什么问题,并提供有关角度设计的高级最佳实践的建议。感谢。
答案 0 :(得分:1)
您的示例的问题与ng-repeat创建的新范围有关。我会给你here一个非常详细的解释,但这里有一点:
对于每个项目/迭代,ng-repeat创建一个新范围,原型继承自父范围,但它还将项目的值分配给新子项的新属性 范围强>
如果item是基元,则基本上将值的副本分配给新的子范围属性。更改子范围属性的值(即使用ng-model)不更改父范围引用的数组。
使用简单的解决方案是一个令人困惑的问题:使您的可绑定值对象而不是基元。
在您的示例中,替换
scope.innerValues = [1,2,3];
与
scope.innerValues = [{value: 1}, {value:2}, {value:3}];
以下是您修改后的示例:http://plnkr.co/edit/IXKk75721MHNsI0zeBEG?p=preview