选择的初始值未在AngularJS中设置

前端之家收集整理的这篇文章主要介绍了选择的初始值未在AngularJS中设置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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但未选择任何选项.
目前我在select上使用ng-if =“model.values”找到了一种解决方法,但我觉得应该有更好的方法来做到这一点.

有人可以解释为什么没有选择选项吗?

普兰克:http://plnkr.co/edit/4opZRJzdDfJhSNJx8RMF

编辑:我在Firefox中打开了Plunkr,然后我开始工作,然后我回到Chrome,它看起来不像crossbrowser问题……

解决方法

我同意@PrimosK的问题.

解决方案是添加跟踪:

ng-options="v for v in model.values track by v"

例如Plunker

猜你在找的Angularjs相关文章