Angular选择不更改模型属性

时间:2014-01-24 15:42:17

标签: javascript angularjs

我有一个绑定到某个属性的选择。

<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" />,当我更改下拉列表时,我的提醒仍然显示“是”,但我的输入确实说“不” - 所以我认为我的范围正在改变而我只是陷入困境警报说。

2 个答案:

答案 0 :(得分:0)

可能尝试$watch或使用$scope.apply

答案 1 :(得分:0)

发现问题 - 很难搞清楚。发生了什么事情,当我加载页面(它的模态)我有这个新的范围。那是绑定它并将其设置为“否” - 当我更改它时,该范围的嵌套范围添加了相同的属性,这就是我的更改。我的标记引用了父作用域并且从未改变 - 嵌套作用域是。所以在我的标记中,我添加了加载时的对象(“Person”)。所以我没有使用ng-model =“IsCompleted”来代替ng-model =“Person.IsCompleted”,这解决了我的问题。 -