0

我有一个选择标签

 <select ng-model="vm.fooModel"
         ng-options="item.id as item.name for item in vm.fooOptions" >
     <option value="none">Select</option>
 </select>

问题是,当它被渲染时,角度 1.6 正在删除我的默认选项并添加一个空选项

     <option value="?" selected="selected"></option>

我对 "vm.fooModel" 的初始模型值为 "none" 。̶T̶h̶i̶s̶̶w̶a̶s̶̶w̶o̶r̶k̶i̶n̶g̶̶f̶i̶n̶e̶̶i̶n̶̶a̶n̶g̶u̶l̶a̶r̶̶1̶.̶5̶

4

3 回答 3

0

将默认选项添加到控制器中的选项数组。

angular.module("app", [])
  .controller("ctrl", function() {
    var vm = this;
    vm.fooModel = "none";
    vm.fooOptions = [{
        id: "none",
        name: "default"
      },
      {
        id: 1,
        name: "one"
      },
      {
        id: 2,
        name: "two"
      },
    ];
  })
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<body ng-app="app" ng-controller="ctrl as vm">
  <select ng-model="vm.fooModel" ng-options="item.id as item.name for item in vm.fooOptions">
  </select>

  Select: {{vm.fooModel}}
</body>

于 2018-05-24T08:11:39.987 回答
0
<option ng-repeat="item in vm.fooOptions track by item.id" ng-value="item.id">

在 ng-repeat 中使用 track by

于 2018-05-24T08:20:28.010 回答
0

使用选项的ng-repeat方法<select>

angular.module("app",[])
.controller("ctrl", function(){
  var vm = this;
  vm.fooModel="none";
  vm.fooOptions=[
    {id: 1, name:"one"},
    {id: 2, name:"two"},
  ];
})
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="app" ng-controller="ctrl as vm">
    <select ng-model="vm.fooModel">
      <option value="none" disabled>Select</option>
      <option ng-repeat="item in vm.fooOptions" ng-value="item.id">
        {{item.name}}
      </option>   
    </select>
    value={{vm.fooModel}}
 </body>

有关更多信息,请参阅AngularJS<select>指令 API 参考 -ngRepeat用于生成select选项

于 2018-05-23T19:47:17.960 回答