在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);
});
Run Code Online (Sandbox Code Playgroud)
视图:
Options: <select ng-model="model.value"
ng-options="v for v in model.values">
<option value="">Select some...</option>
</select>
Run Code Online (Sandbox Code Playgroud)
超时模型具有旧值101但未选择任何选项.目前我通过使用ng-if="model.values"select 来找到解决方法,但我觉得应该有更好的方法来做到这一点.
有人可以解释为什么没有选择选项吗?
Plunkr:http://plnkr.co/edit/4opZRJzdDfJhSNJx8RMF
编辑:我在Firefox中打开了Plunkr,然后我开始工作,然后我回到Chrome,它看起来不像crossbrowser问题......
我同意@PrimosK 关于这个问题的观点。
解决方案是添加跟踪:
ng-options="v for v in model.values track by v"
Run Code Online (Sandbox Code Playgroud)
示例中Plunker
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |