我挖了幾個小時而沒有找到我想要做的答案。我的工作有很多變量的複雜形式,所以我會盡力在這裏縮小我的要求:)預選陣列中的選項
var list = [{id:0, name:opt0}, {id:1, name:opt1},{id:2, name:opt2}];
var selected = ['opt1', 'opt2'];
var numberOfRows = 2;
我有可變數量的選擇基於一個變量。所以我用NG-重複這樣的:
<tr ng-repeat="i in numberOfRows track by $index">
<td>
<select list.indexOf(selected[$index]) as item for item in list></select>
</td>
</tr>
的結果應該是這樣的
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
<option label="opt1" value="opt1" selected="selected"></option>
<option label="opt2" value="opt2"></option>
</select>
</tr></td>
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
<option label="opt1" value="opt1"></option>
<option label="opt2" value="opt2" selected="selected"></option>
</select>
</tr></td>
我試過很多方式來寫我的NG選項。 我實際上是正確的選擇與每個內部列表的數量,但每個選擇應該有一個不同的預選變量。他們都是根據我的名單的最後一個值選擇的。無論我嘗試什麼。
PS:在我的「選擇」數組中的值總是在列表[$指數] .NAME
如果有人知道如何實現,我會很高興的^^
... 。
小方面的請求:是否有可能在列表上做一個過濾器,它將通過所有選擇刪除/隱藏選定的選項? 結果是這樣的:
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
<option label="opt1" value="opt1" selected="selected"></option>
//opt2 removed because it's selected in another select
</select>
</tr></td>
<tr><td>
<select>
<option label="opt0" value="opt0"></option>
//opt1 removed because it's selected in the previous select
<option label="opt2" value="opt2" selected="selected"></option>
</select>
</tr></td>
謝謝:)
可能是一個錯字,但您在第一個'selected'前缺少一個空格。 'value =「opt1」selected =「selected」' –
只是在我的請求中輸入錯誤。我的變量名稱很長。 – Chim