【发布时间】:2014-03-01 22:55:59
【问题描述】:
我在 Angular-UI-Bootstrap 模式中遇到了一种奇怪的单向绑定行为。
在模态 html 中,两天数据绑定似乎工作正常,但控制器的范围变量模型由于某种原因没有更新。
但是,如果作用域变量是一个对象,那么双向绑定似乎会传播到控制器。
有人知道为什么会这样吗?无论如何要修复它?
我已经做了一个 plunker 来演示这个问题。
【问题讨论】:
标签: angularjs angular-ui-bootstrap
我在 Angular-UI-Bootstrap 模式中遇到了一种奇怪的单向绑定行为。
在模态 html 中,两天数据绑定似乎工作正常,但控制器的范围变量模型由于某种原因没有更新。
但是,如果作用域变量是一个对象,那么双向绑定似乎会传播到控制器。
有人知道为什么会这样吗?无论如何要修复它?
我已经做了一个 plunker 来演示这个问题。
【问题讨论】:
标签: angularjs angular-ui-bootstrap
这似乎是我看到人们遇到的最常见的问题; 嵌套范围。查看以下资源:http://jimhoskins.com/2012/12/14/nested-scopes-in-angularjs.html
这基本上归结为以下几点。如果您尝试访问$scope.someVal,Angular 将在父链上搜索someVal,如果找到会将其返回给您。如果您尝试更改someVal,它只会在当前范围内创建一个新的someVal。
但是,如果您尝试访问 $scope.someObj.someVal,则读取行为相同。除了这一次如果你尝试改变someVal,它会改变someObj里面的值,不管是哪个作用域命令更新。
【讨论】: