我有一個名稱 - 值集合,用於填充select元素。我有一個模型,我想鏈接到選定值的ID。它在select元素更改時起作用,但我在初始模型值在頁面加載時填充select元素時遇到問題。這是一個plunker。使用ngOptions發佈預選列表
這裏是相應的代碼(控制器和視圖):
$scope.items =
[
{id: "1", name: 'This'},
{id: "2", name: 'That'},
{id: "3", name: 'Another'}
];
$scope.itemId = "2";
<select ng-model="itemId">
<option value=""></option>
<option ng-repeat="item in items" value="{{item.id}}">{{item.name}}</option>
</select>
在本例中,我期望要選擇的選項That
自我的初始模型是2
(該That
項的id
)。如果從選擇列表中選擇Another
,那麼我預計模型(itemId
)爲「3」。
還包括在我的Plunker是另一種方式來指定一個選擇列表:
<select ng-model="itemId" ng-options="item.name for item in items track by item.id">
<option value=""></option>
</select>
我能得到的模型成功地使用此語法預加載的選擇,但它需要我的模型是整個項目對象,而不僅僅是id。
在此先感謝。
謝謝!你在哪些情況下使用'track by'? – im1dermike
當您不使用* select as *語法時:引用[documentation](https://docs.angularjs.org/api/ng/directive/ngOptions)。由於我使用* select as *,因此我刪除了'track by'。 –