3

<option>どうやらAngularJSはIEで単純なテンプレートとして要素のリストを適切に構築できないため、ng:Optionsディレクティブを提供します(https://github.com/angular/angular.js/issues/235を参照)。

ソースを確認した後、次のように、目的のラベルを使用してオプションを作成することができました(JSFiddle)。

<!-- what I'd like to do -->
<select>
    <option ng:repeat='key in keys' value='{{key}}'> {{lookup[key].firstName}} {{lookup[key].lastName}} </option>
</select>
<br/>
<br/>
<!-- what Angular lets me do -->
<select ng-model='key' ng:options='k as lookup[k].firstName + " " + lookup[k].lastName for k in keys'></select>

ただし、Firebugでオプションを調べると、値が数値インデックスであり、目的のキー値ではないことがわかります(初期k値がオプション値として使用されることを期待していました)。

私はコードを深く調べていないので、式の別の部分に欠けているものがあるかどうかわかりません(正規表現には追加の関連キーワードがないようです)。

私は、ここの誰かがこの指令を十分に知っていて、(1)それを行う方法、または(2)私が運が悪いことを教えてくれることを望んでいました。

4

1 に答える 1

1

必要なキー値は、ng-modelで指定したプロパティにありますkey{{key}}HTMLの下部(最後の選択リストの直後)に追加して表示します。

お気づきのとおり、Angularは配列インデックスをHTMLに保存します。これについて詳しくは、AngularJS-selectのvalue属性を参照してください。

于 2013-02-13T17:33:01.337 に答える