范围值更改时如何更新md-select选项?

时间:2015-12-02 01:05:10

标签: javascript angularjs angular-material

我有一个非常基本的1元素,只有3个选项。我允许用户通过.children属性选择多个选项。

我有一个按钮,只有在选中时才会删除第二个值。虽然更改未应用于md-select元素?

,但是从范围变量中正确删除了该值

使用Javascript:

multiple

HTML:

md-select

WORKING EXAMPLE

要复制此问题,请选择" 1"和" 2"从下拉列表。然后单击"取消选择2"按钮以从ng-repeat中删除它,但不从下拉列表中的选定选项中删除。

如果更改范围变量,如何更新$scope.selectedNumbers = []; $scope.numbers = [{ num: 1 }, { num: 2 }, { num: 3 }]; $scope.deselectTwo = function() { if ($scope.selectedNumbers.indexOf(2) > -1) { $scope.selectedNumbers.splice(1, 1); } }; 选项?

1 个答案:

答案 0 :(得分:2)

奇怪 - 这可能是md-select的错误吗?我注意到,如果您将splice()替换为作业(例如$scope.selectedNumbers = [1]),那么它会按预期工作。

作为一种丑陋的解决方法,您可以添加一行来将selectedNumbers设置为自身的副本,这会导致md-select更新。例如:$scope.selectedNumbers = $scope.selectedNumbers.slice();

热衷于听听其他人是否有更好的答案!