0
我有這個NG-重複:如何在ng-repeat中設置變量的值?
<div ng-repeat="row in phs.phrasesView = (phs.phrases | orderBy:phs.phrasesOrderBy[phs.phrasesOrderById].key:phs.phrasesSortDirectionId == 1)"
***
*** I want something here to set the value of pos ***
*** based on array1.findIndex(v => v.phraseId == 'def') + 1; ***
***
>
<div>{{ phs.phrases[pos].phraseId }} </div>
<div>{{ phs.phrases[pos].keyword }} </div>
我有這樣的數據:
var phs.phrases = [{
"phraseId": "abc",
"keyword": "bb",
"posId": 1
}, {
"phraseId": "def",
"keyword": "bb",
"posId": 1
}, ];
我想這樣做的是找到行的位置。我不能使用$索引,因爲我想查找位置並在排序後顯示它。
我知道我可以使用這段代碼找到pos,但是我怎樣才能設置它,所以這段代碼適用於ng-repeat的每一行?
var pos = array1.findIndex(v => v.phraseId == 'def') + 1;
如果您不是指'$ index',那麼您不清楚「行的位置」是什麼意思。對數組進行排序可更改項目的位置;如果你以某種方式在排序之前存儲了索引,那麼在排序之後顯示該值,這將不是一個有用的值,因爲該項目不再需要在該陣列位置。如果由於某種原因需要每個對象具有固定值,那麼該值將需要是每個對象的屬性。 – Claies
將每個對象的位置存儲在對象內部:'phs.phrases.forEach(function(phrase,index){phrase.position = index + 1;});'或者(效率低得多),調用函數在ng-repeat中的位置:'{{getPositionOf(row)}}' –
@JBNizet - 您能否提出您的解決方案作爲答案。謝謝 –