加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 18:08:47 所属栏目:安全 来源:网络整理
导读:在AngularJS 1.3应用程序中,我有一个表单,我从后端异步获取模型和选择控件的可能值.当我在ng-options中使用的值之前获得模型值时,在选择控件中不会选择任何选项. 我设法重现了这种行为: var app = angular.module('plunker',[]);app.controller('MainCtrl',
在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读