我在Angular-UI-Bootstrap模式中遇到了一种奇怪的单向绑定行为。
在一个模态html中,两天的数据绑定似乎工作正常,但控制器的范围变量模型由于某种原因没有更新。
但是,如果范围变量是一个对象,那么双向绑定似乎会传播到控制器。
有谁知道为什么会这样?无论如何要解决它?
我已经找到了一个能够证明这个问题的人。
答案 0 :(得分:2)
这似乎是我看到人们有角度的最常见的问题; 嵌套范围。请查看以下资源:http://jimhoskins.com/2012/12/14/nested-scopes-in-angularjs.html
这基本归结为以下内容。如果您尝试访问$scope.someVal
,angular会搜索父链,查找someVal
,如果找到则会返回给您。如果您尝试更改someVal
,则只会为当前范围创建新的someVal
。
如果您尝试访问$scope.someObj.someVal
,则阅读的行为方式相同。除非您尝试更改someVal
,否则它将更改someObj
内的值,无论哪个范围指示更新。