【发布时间】:2015-12-21 03:14:57
【问题描述】:
在 AngularJS 1.3 应用程序中,我有一个表单,我在该表单上从后端异步获取选择控件的模型和可能值。当我在ng-options 中使用的值之前获得模型值时,选择控件中不会选择任何选项。
我设法重现了这种行为:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $timeout) {
$scope.model = { value: 101 };
$timeout(function() {
$scope.model.values = [100, 101, 102, 103];
}, 1000);
});
查看:
Options: <select ng-model="model.value"
ng-options="v for v in model.values">
<option value="">Select some...</option>
</select>
超时后模型具有其旧值 101 但未选择任何选项。
目前我通过在选择时使用ng-if="model.values" 找到了一种解决方法,但我觉得应该有更好的方法来做到这一点。
有人可以解释为什么没有选择选项吗?
Plunkr:http://plnkr.co/edit/4opZRJzdDfJhSNJx8RMF
编辑:我在 Firefox 中打开 Plunkr 并开始工作,然后我回到 Chrome 并没有工作,看起来像是跨浏览器问题...
【问题讨论】:
-
这似乎是 Angular 1.3 特有的;该代码在 angular 1.2 和当前版本 1.4.6 中正常工作
-
我不确定,但我怀疑这应该因为无法重现而关闭,因为所展示的问题仅影响特定的框架版本,并且当前稳定版本中不存在。
标签: angularjs