21

以下のようなオブジェクトがあります。これをドロップダウンとして表示する必要があります。

var list = [{id:4,name:"abc"},{id:600,name:"def"},{id:200,name:"xyz"}]

私のコントローラーには、値を運ぶ変数があります。この値は、配列内の上記の 3 つの項目のどれがドロップダウンでデフォルトで選択されるかを決定します。

 $scope.object.setDefault = 600;

以下のようにドロップダウンフォームアイテムを作成すると:

<select ng-model="object.setDefault" ng-options="r.name for r in list">                 

私は2つの問題に直面しています:

  1. リストは次のように生成されます

    <option value="0">abc</option>
    <option value="1">def</option>
    <option value="2">xyz</option>
    

    それ以外の

    <option value="4">abc</option>
    <option value="600">def</option>
    <option value="200">xyz</option>
    
  2. 私が持っていても、デフォルトではオプションは選択されませんng-model="object.setDefault"

4

10 に答える 10

8

ビューで

<select ng-model="boxmodel"><option ng-repeat="lst in list" value="{{lst.id}}">{{lst.name}}</option></select>

JS:

サイドコントローラー内

 $scope.boxModel = 600;
于 2014-04-04T05:50:46.190 に答える
7

次のコード(追跡)でそれを行うことができます、

<select ng-model="modelName" ng-options="data.name for data in list track by data.id" ></select>
于 2015-02-02T10:02:57.520 に答える
3

これは古い質問であり、すでに回答を得ているかもしれません。

私のplnkrは、デフォルトのドロップダウン値の選択を達成するための私のアプローチについて説明しています. 基本的に、ドロップダウン値を返すサービスがあります[テスト用にハードコードされています]。デフォルトでは値を選択できず、ほとんど 1 日を費やしていましたが、最終的に script.js ファイルでは$scope.proofGroupId = "47";なく設定する必要があることに気付きました。$scope.proofGroupId = 47;それは私の悪いことで、文字列「47」の代わりに整数 47 を設定していることに気づきませんでした。誰かが見たい場合に備えて、 plnkrを保持しました. うまくいけば、これは誰かを助けるでしょう。

于 2015-11-24T23:50:30.653 に答える
3
<select ng-init="somethingHere = options[0]" ng-model="somethingHere" ng-options="option.name for option in options"></select>

これにより、望ましい結果が得られます おい :) 乾杯

于 2016-02-18T12:03:22.680 に答える
2

一部のシナリオでは、object.item が読み込まれないか、未定義になります。

ng-initを使用する

<select ng-init="object.item=2" ng-model="object.item"
ng-options="item.id as item.name for item in list"
于 2014-03-06T23:06:48.947 に答える