Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ng模型不响应链接Ng选项的更改_Javascript_Angularjs - Fatal编程技术网

Javascript Ng模型不响应链接Ng选项的更改

Javascript Ng模型不响应链接Ng选项的更改,javascript,angularjs,Javascript,Angularjs,当使用基于对象数组构建的ng选项链接select元素时,我看到一些奇怪的行为。拨弄 更改作用域属性“filter.general”时,作用域属性“filter.option”不会重置,但下拉列表会重置 阵列的必需代码: $scope.filterData = [ {"name" : "Users", "options" : []}, {"name" : "Data calls", "options" : [{"title": "Collection"}, {"title": "User"}]},

当使用基于对象数组构建的ng选项链接select元素时,我看到一些奇怪的行为。拨弄

更改作用域属性“filter.general”时,作用域属性“filter.option”不会重置,但下拉列表会重置

阵列的必需代码:

$scope.filterData = [
{"name" : "Users", "options" : []},
{"name" : "Data calls", "options" : [{"title": "Collection"}, {"title": "User"}]},
{"name" : "Msg Pub", "options" : [{"title": "Topic"}, {"title": "User"}]},
{"name" : "Msg Sub", "options" : [{"title": "Topic"}, {"title": "User"}]}
];
我想出了一个使用ng change的黑客程序,它删除“filter.option”以获得所需的行为。拨弄


有人知道为什么会这样吗?这似乎是因为“filter.option”模型没有绑定到“filter.general”模型,因此没有反映对后者的任何更改。有没有办法在第一个模型的基础上构建第二个模型?如有任何帮助,将不胜感激。

据我所知,更改“filter.general”并不意味着要更新“filter.option”

希望其他人能说出原因,我似乎记得angular.js不喜欢将值更新为null,但有时值并不像您希望的那样更新。对不起,我不能提供更多关于这件事的信息

不过,我有一个解决办法。 这是一个JSFIDLE。

你需要做两件事。 首先,使用
ng更改
在您的常规场上,以告知该场更改时的角度

然后在控制器中,有一个“重置”方法,该方法指向选择下拉列表中的第一个选项(空选择)。
返回$scope.filter.option=$scope.filter.option[0]


我知道这看起来很奇怪,但我想这就是你要找的

谢谢你的回复。看来我们也提出了类似的解决方案。我将不回答这个问题,希望有人知道为什么会发生这种情况,并可能提供一个“正确”的方法。如果没有人能想出一个“适当”的方法,我会在几天内接受你的回答。