我偶然发现了一个关于 ng-options 的奇怪问题。考虑一个简单的选择:
<select ng-model="x" ng-options="n for n in [1,2,3]"></select>
在控制器中分配模型值的位置:
$scope.x = 3;
这很好用;选择元素显示 3。但是,如果分配延迟,
$timeout(function() { $scope.x = 3 }, 50);
选择显示为空白。但前提是模型值是列表中的最后一个选项!换句话说,这很好用:
$timeout(function() { $scope.x = 2 }, 50);
然后选择元素显示 2。与 1 相同。但 3 显示为空白。
什么?
这是一个演示。
这是 angular 1.2.26 出现的问题。早期版本还可以(您可以通过更改 plunk 使用的角度版本来亲自查看)。
但是我的项目有各种依赖项,bower 不断将我的角度推到 1.2.29。有人知道我如何解决这个问题吗?