0
使用this Fiddle,如何使用向上和向下按鈕向上和向下移動第二個(最接近SELECT
的底部)「綠色」項目?如果選擇了第二個「綠色」項目並按下其中一個按鈕,則它是第一個移動的「綠色」項目,這是不正確的。所有其他項目的行爲正確。在使用ng-options時獲取選定的索引
一般來說,我的問題是如何識別SELECT
中使用ng-options
的特定項目,如果列表可以包含同一對象的多個副本?
使用this Fiddle,如何使用向上和向下按鈕向上和向下移動第二個(最接近SELECT
的底部)「綠色」項目?如果選擇了第二個「綠色」項目並按下其中一個按鈕,則它是第一個移動的「綠色」項目,這是不正確的。所有其他項目的行爲正確。在使用ng-options時獲取選定的索引
一般來說,我的問題是如何識別SELECT
中使用ng-options
的特定項目,如果列表可以包含同一對象的多個副本?
這兩個「綠色」元素在代碼中都有相同的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' }
];
是的,他們有相同的ID,但它們都在'SELECT'兩個不同的元素。第一個「綠色」的「值」爲1,第二個「值」爲3(他們的數組索引)。問題是,我怎樣才能得到當前選擇哪一個? – jason
當你使用這個條件來獲取索引時,這不是你的代碼所說的:if(a [i] .id == item.id); [id在你的代碼中不是唯一的,所以這個條件不好],而循環id匹配第一個元素,所以函數返回第一個元素的索引,而不是第二個元素,這導致:1-按照我的建議更改id;或者2-改變你得到索引的方式 –
我同意這個例子很有意思,但它是爲了說明問題。問題是關於使用AngularJS「獲取選定的索引」。在香草JavaScript中你可以這樣做:'document.getElementById(id).selectedIndex',也許這也是唯一的答案。 – jason