如何在 ng-options 的第一个位置添加选项

How to add option at first position in ng-options

我的页面中有 ng-option 个元素。

这是它在模板中的样子:

<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id"></select>

在控制器中:

 $scope.selectedItem = {};

 $scope.items = [{name: 'one', id: 30 },{ name: 'two', id: 27 },{ name: 'threex', id: 50 }];

在我的项目中,我从一些查找中获得范围项 table。

我需要将这个元素添加到 ng-select 中,值为 -1:

<option value="-1">- manual -</option>

看起来像这样:

<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id">
   <option value="-1">- manual -</option>
</select>

这里是Plunker

但我在视图中看不到 manual 选项。

知道为什么我在视图中看不到手动选项吗?

由于您反对 id-name 对,您需要使用 unshift 在第一个位置添加一个新选项。

$scope.items.unshift({name: 'manual', id:-1});

然后指定默认选择的选项。

$scope.selectedItem = $scope.items[0];

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  
  $scope.items = [];
  $scope.items = [{name: 'one', id: 30 },{ name: 'two', id: 27 },{ name: 'threex', id: 50 }];
  
  $scope.items.unshift({name: 'manual', id:-1});
  $scope.selectedItem = $scope.items[0];
});
<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script data-require="angular.js@1.3.15" data-semver="1.3.15" src="https://code.angularjs.org/1.3.15/angular.js"></script>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <select ng-model="selectedItem" ng-options="item.name for item in items track by item.id">
      
    </select>
    
  </body>

</html>

在获取项目后在控制器中添加选项,

$scope.items.push({name:'-manual-', id: -1});

updated code

改变你的 select 如下

<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id">
   <option value="">Manual</option>
    </select>

我们可以把 ng-selected ="desirable item value" 属性放到 select 元素上就是了。

<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id" ng-selected="50">
 <option value="">Manual</option>
</select>