繁体   English   中英

通过范围树与控制器进行角度数据传播

[英]Angular data propagation through scope tree with controllers

我正在学习Angular,并且遇到了一些问题。 我正在尝试创建一组表示javascript对象中不同级别的指令。 该对象包含许多不同的属性,这些属性取决于模型其他部分的状态。 例如,如果子属性之一处于错误状态,则父属性也处于错误状态。 我有一个非常过于简单化的例子这里 任何帮助将不胜感激。 特别是如果有人可以解释该示例出了什么问题,并提供有关角度设计的高级最佳实践的建议。 谢谢。

您的示例的问题与ng-repeat创建的新作用域有关。 我会在这里为您提供非常详细的说明,但这是要点:

对于每个项目/迭代,ng-repeat都会创建一个新的范围,该范围通常是从父范围继承的, 但也会将该项目的值分配给新的子范围上的新属性

如果item是基元,则基本上将值的副本分配给新的子范围属性。 更改子作用域属性的值(即使用NG-模型) 改变数组父范围引用。

一个简单的解决方案是一个令人困惑的问题:使您的可绑定值对象而不是基元。

在您的示例中,替换

scope.innerValues = [1,2,3];

scope.innerValues = [{value: 1}, {value:2}, {value:3}];

这是修改为可以工作的示例: http : //plnkr.co/edit/IXKk75721MHNsI0zeBEG?p=preview

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM