我有一个绑定到某个属性的选择。
<select ng-model="IsComplete" ng-change="ChangeMe()" ng-options="item.DataListText as item.DataListText for item in YesNoValues">
<option value="">-- Select Value --</option>
</select>
这一切都发生在我显示的模态上 - 这个选择适用于我的应用程序中的其他视图。由于某种原因,不适用于此模式。
在我的模块中,这是我设置值的地方 - 所以我的选择被正确绑定 - 它显示“是” - 但当我将其更改为“否”时它保持为“是”
$scope.IsCompleted = "Yes";
这是我的changeme功能 - 我只是把它放进去,所以我可以看到它的价值。
$scope.ChangeMe = function () {
alert($scope.IsComplete);
}
我已经从我们的应用程序的另一部分复制了这段代码 - 这个没有。我们的模态上的所有其他绑定都有效。所以我有一些日期输入,当我改变那些它确实改变了范围并正确保存。这只是一次下拉。
提前致谢。
- 编辑
我越来越接近解决这个问题 - 如果有人知道的话 - 在更新/更改ng-model之前调用ng-change。
我添加了<input ng-model="IsComplete" />
,当我更改下拉列表时,我的提醒仍然显示“是”,但我的输入确实说“不” - 所以我认为我的范围正在改变而我只是陷入困境警报说。
答案 0 :(得分:0)
可能尝试$watch
或使用$scope.apply
答案 1 :(得分:0)
发现问题 - 很难搞清楚。发生了什么事情,当我加载页面(它的模态)我有这个新的范围。那是绑定它并将其设置为“否” - 当我更改它时,该范围的嵌套范围添加了相同的属性,这就是我的更改。我的标记引用了父作用域并且从未改变 - 嵌套作用域是。所以在我的标记中,我添加了加载时的对象(“Person”)。所以我没有使用ng-model =“IsCompleted”来代替ng-model =“Person.IsCompleted”,这解决了我的问题。 -