2

重複の可能性:
AngularJS によって生成された選択リストの事前選択を行う方法は?

angularチュートリアルでは、デフォルトで選択によるソートを「最新」に設定するsortOrderスコープ変数を設定しました。

私のフィドルでは同様のことをしていますが、私の選択値は選択されていません。代わりに、スコープに値を設定しなかったかのように空のエントリを取得します。それでも、ソート順を確認でき、選択の値を発行しており、プリセットされています。

    //set a default this way also, but not updating the dropdown
$scope.ddlFilter = {
    name: "All Open Events",//doesn't matter what this is, only cares about value
    value: "ALL"//"OPEN"
};

ng-init を使用してデフォルトを設定できることは知っていますが、この方法でも実行できるようにしたいと考えています。助言がありますか?

4

1 に答える 1

6

オブジェクトの配列の代わりにオブジェクトを使用してみてください。のような配列位置に対して、文字列によって必要なものを参照できるようになりますscope.eventFilters[0]

$scope.eventFilters = {
    "OPEN": "All Open Events",
    "UNMAPPED": "All Un-Mapped Events",
    "MAPPED": "All Mapped Events",
    "CLOSED": "All Closed Events (past 8 hours)",
    "ALL": "All Events",
    "OTHER": "Other OpCenter Open Events"
};

次に、デフォルト値を文字列 (上記のオブジェクトのキー) として定義します。

$scope.ddlFilter = "MAPPED";

そして、ページで選択を次のように変更します

<select ng-model="ddlFilter" ng-options="k as v for (k, v) in eventFilters"></select>

フィルターは不要.valueになるため、次のようになります。

<tr ng:repeat="event in events  | myEventFilter:ddlFilter | orderBy:sort.column:sort.descending">

ここで動作する変更されたコードを参照してください: http://jsfiddle.net/WXLte/2/

于 2013-01-31T03:49:56.707 に答える