0

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 }];

私のプロジェクトでは、ルックアップ テーブルからスコープ アイテムを取得します。

この要素を value で 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>

こちらがプランカーです。

manualしかし、私はビューオプションに表示されません。

ビューに手動オプションが表示されない理由は何ですか?

4

4 に答える 4

0

アイテムをフェッチした後、コントローラーにオプションを追加し、

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

更新されたコード

于 2016-10-20T13:17:23.553 に答える
0

以下のように選択を変更します

<select ng-model="selectedItem" ng-options="item.name for item in items track by item.id">
   <option value="">Manual</option>
    </select>
于 2016-10-20T13:36:13.090 に答える
0

ペアでオブジェクトを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>

于 2016-10-20T13:12:26.487 に答える