0

ng-modelオブジェクト自体ではなく、選択の値を含むように my を設定する方法がわかりません。

HTML

<select name="status"
        data-ng-model="search.status"
        data-ng-options="s.label for s in statuses">
</select>

$scope.statuses = [
    { label: ' - si/no - ', value: '' },
    { label: ' Migrated ', value: 0 },
    { label: ' Active ', value: 1 },
    { label: ' Canceled ', value: 2 },
    { label: ' Un-confirmed ', value: 3 },
];

$scope.search.status = $scope.statuses[0];

結果は次のようになります。

stdClass Object
(
    [label] =>  - si/no - 
    [value] => 
)

ここで、[value]オブジェクト全体ではなく、 が必要です。どうすればそれを達成できますか?

PSにアクセスする必要はありません。変数に既に値が含まれているobject->valueことを望んでいます。x

アップデート

私はこれを以前に持っていましたが、それは機能していました:

<select name="status" class="txt" data-ng-model="search.status">
    <option value=""> - ALL - </option>
    <option value="0"> Migrated </option>
    <option value="1"> Active </option>
    <option value="2"> Canceled </option>
    <option value="3"> Un-confirmed </option>
</select>

mysearch.statusには、上記のコードで取得したようなオブジェクト全体ではなく、選択した値のみが含まれます。

4

1 に答える 1

1

マークアップを変更する必要があります。式のasキーワードng-optionsは魔法を作ります。

以下の式は、オブジェクトのプロパティs.valueをモデルに設定しますが、要素s.labelのラベルとして残り<option>ます (それはあなたが望むものだと思います)。

<select name="status"
        ng-model="search.status"
        ng-options="s.value as s.label for s in statuses">
</select>

そしてもちろん、コントローラーのモデル値の初期化を変更する必要があります(@Orangepillが指摘したように):

$scope.search.status = $scope.statuses[0].value;
于 2013-07-15T08:13:22.573 に答える