選択された属性に対する角度の動作が各メジャーバージョンで前後に変更されているようです。ですから、ng-repeatではなくng-optionsを使用して1.5.xリリースで達成可能かどうかを教えてくれる人を探しています。私はこのng-optionsでシングル/マルチ選択の選択属性を設定する
の多くのバリエーションを試してみた(それがjQueryプラグインによって解釈することができるように) は、次のように<select multiple="multiple"...>
<option value="abc123" label="Justin" selected="selected">Justin</option>
</select>
をHTMLを角度作成してもらう:私は何をしようとしている
<select ms-multi-listbox multiple="multiple" class="multi-select"
id="ym" name="ym" ng-model="groupCtrl.memSelection"
ng-options="mem as mem.displayName for mem in groupCtrl.selectableMembers track by mem.id">
運がない。
モデルは次のようになります。ここでは
groupCtrl.memSelection =["abc123"];//inbound from api as is selectableMembers
が、私は(追加の混乱のための角度バージョンを変更してみてください)でプレーしてきたplunkです:Plunker
すべてのアイデアは歓迎されている..私は主にng-repeatを避けたかったのは、長いリストではオーバヘッドが多いからですが、明らかに遅いのは働かないよりも良いので、ng-optionsでこれを行う方法を学ぶまで使用します。
ありがとうございます!
編集:ここでは は私が望む結果を達成NG-繰り返しである:
<option ng-repeat="mem in groupCtrl.selectableMembers" value="{{mem.id}}" label="{{mem.displayName}}" ng-selected="groupCtrl.memSelection.indexOf(mem.id)>=0">{{mem.displayName}}</option>
enter code here
私が正しく理解していれば、選択に基づいて属性を設定する必要があります。これにはカスタムディレクティブが必要です。 – Kyle
はい、optionsタグに 'selected'属性を設定します。 Angularは、モデルがリスト内の値に初期化されている場合に、場合によっては(そしていくつかのバージョンで)これを行います。 –
あなたのプランカーリンクが間違っています。 –