2013-08-25 14 views
0

使用this Fiddle,如何使用向上和向下按鈕向上和向下移動第二個(最接近SELECT的底部)「綠色」項目?如果選擇了第二個「綠色」項目並按下其中一個按鈕,則它是第一個移動的「綠色」項目,這是不正確的。所有其他項目的行爲正確。在使用ng-options時獲取選定的索引

一般來說,我的問題是如何識別SELECT中使用ng-options的特定項目,如果列表可以包含同一對象的多個副本?

回答

0

這兩個「綠色」元素在代碼中都有相同的id,這會造成一些混淆(因爲id是標識特定元素的參數,所以相同的id表示相同的元素),如果您正在談論2個不同的元素名字只是改變其中一個的ID和一切工作正常

如:

$scope.list = [ 
    { id: 100, name: 'blue' }, 
    { id: 101, name: 'green' }, 
    { id: 102, name: 'red' }, 
    { id: 104, name: 'green' }, 
    { id: 103, name: 'yellow' } 
]; 
+0

是的,他們有相同的ID,但它們都在'SELECT'兩個不同的元素。第一個「綠色」的「值」爲1,第二個「值」爲3(他們的數組索引)。問題是,我怎樣才能得到當前選擇哪一個? – jason

+0

當你使用這個條件來獲取索引時,這不是你的代碼所說的:if(a [i] .id == item.id); [id在你的代碼中不是唯一的,所以這個條件不好],而循環id匹配第一個元素,所以函數返回第一個元素的索引,而不是第二個元素,這導致:1-按照我的建議更改id;或者2-改變你得到索引的方式 –

+0

我同意這個例子很有意思,但它是爲了說明問題。問題是關於使用AngularJS「獲取選定的索引」。在香草JavaScript中你可以這樣做:'document.getElementById(id).selectedIndex',也許這也是唯一的答案。 – jason

相關問題