【问题标题】:Select ngoptions default selection not working for选择 ngoptions 默认选择不适用于
【发布时间】:2016-03-11 12:23:10
【问题描述】:

我也浏览过一些关于 ngOptions 和文档的帖子(1,2, others)。我让选择正常工作,但在首次启动时选择默认值时出现问题。一旦我改变它,一切都会完美。正如this questoin 正确回答的那样,当在提供的选项中找不到模型值时,angularjs 会创建一个空选项,但我的值 3 很好地存在于提供的范围内。

下面是我从服务器接收到的 sList 对象,但选择始终呈现未选择的空选项,而模型中存在有效值。这可能是因为 '3' 和 3 之间的差异,但我不确定这是否以及如何产生差异。

在 JS 中:

sModel = 3;
sList = {0: "NONE", 1: "LS", 2: "SS", 3: "CR"};


<select ng-model="sModel" ng-options="key as val for (key,val) in sList track by key"></select>

渲染的选择框:

<select ng-model="sModel" ng-options="key as val for (key,val) in sList track by key" class="ng-pristine ng-valid ng-not-empty ng-touched" aria-invalid="false" style="">
<option value="?" selected="selected"></option>
<option label="NONE" value="0">NONE</option>
<option label="LS" value="1">LS</option>
<option label="SS" value="2">SS</option>
<option label="CR" value="3">CR</option>
</select>

我知道大多数此类问题都受到重复答案的保护,但我找不到我遇到的确切问题,所以这可能是我错过的非常基本的事情。

非常感谢任何帮助我理解我到底做错了什么。

【问题讨论】:

    标签: angularjs ng-options angularjs-ng-options


    【解决方案1】:

    var myapp = angular.module('app', []);
    myapp.controller('Ctrl', function ($scope) {
      var vm = this;
      vm.sModel = "3";
        vm.sList = {0: "NONE", 1: "LS", 2: "SS", 3: "CR"};
       
          
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="app" ng-controller="Ctrl as vm">
    <select ng-model="vm.sModel" ng-options="key as val for (key,val) in vm.sList"></select>
    </div>

    试试这个

    sModel = "3";
    sList = {0: "NONE", 1: "LS", 2: "SS", 3: "CR"};
    

    【讨论】:

    • 嗨@hadiJZ:服务器正在接收 sModel 的值,我正在寻找一种干净的方法而不更改值。因为当我将选定的选项值发送到服务器时,它正确地发送了 3,而不是“3”,所以我不确定这是否应该是解决这个问题的方法,即使它可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2023-03-22
    • 2013-10-15
    • 2017-02-28
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多