Angular不根据模型更新我的select元素

时间:2012-09-06 15:01:21

标签: javascript angularjs

在我的应用程序中,我有一些分组选择元素都具有相同的选项。当一个选择被更改时,它会检查其他选项以查看是否已在任何其他选择中选择了新选择的选项。如果已经选择了它,则有一些逻辑可以动态选择尚未在其他选择中选择的选项。有时,这种逻辑会导致像以前一样选择相同的选项。发生这种情况时,我的select元素不会更新,并且与我的模型不同步。

我创建了一个非常简单的jsFiddle,在这里显示:http://jsfiddle.net/wvLHw/

我已经找到了一个可能的解决方法,但我不知道在我的应用程序中有多可能。有没有更好的方法来使这项工作正常?是否有一些理由为什么angular不会根据我的模型更新select元素?

2 个答案:

答案 0 :(得分:1)

这是版本1.0.2的angularjs问题,已在1.0.3修复。

这应该适合你

$scope.myOnChange = function() {
    //more logic here, but ends up back at c
    $scope.foo = "c";
}

答案 1 :(得分:0)

我不确定我是否正确地解释了你的问题,但我假设你有几个选择,当其中一个选择的值改变时你想要执行一些逻辑(基于其他选择'值)最终将计算要设置的最终值。

如果以上内容正确使用$ scope。$ watch将涵盖您的用例。为了举例,我们假设我有2个选择绑定到2个不同的模型值(foo和bar)。如果某人更改了foo的值并且它等于为bar选择的内容,那么您希望强制foo成为其他内容。在这种情况下,这段代码可以解决这个问题:

$scope.$watch('foo', function(fooValue){
    if (fooValue === $scope.bar){
        $scope.foo = 'a';
    }
});

以下是完整的jsFiddle:http://jsfiddle.net/pkozlowski_opensource/vqjKq/3/

我希望我正确地解释您的用例,但如果没有,请对此答案发表评论,我将很乐意提供更新。

相关问题