我最好的嘗試找到解決方案已經空了。基本上,我想要做這樣的事情在我的html:AngularJS,在過濾器謂詞中訪問ngRepeat值
<div data-ng-repeat="tag in allTags">
<h3>{{tag}}</h3>
<uib-accordion>
<div uib-accordion-group data-ng-repeat="item in displayItems | filter: tagFilter: tag">
tagFilter看起來是這樣的:
$scope.tagFilter = function(item, tag) {
if(item.tags.indexOf(tag) === -1) {
return false;
}
return true;
}
在displayItems每一個項目是具有標籤的數組的對象,所以顯示的項目看起來是像這樣:
[
{ title: "Item 1 Title", body: "Some escaped HTML Content", tags: ["tag1", "tag2", "tag3"]},
{ title: "Item 2 Title", body: "Some escaped HTML Content", tags: ["tag2", "tag4"] }
]
我希望它出現在它所屬的所有標題下。問題是我無法弄清楚如何正確地將'tag'的值傳遞給tagFilter。在上面的代碼中,codeFilter中的參數標記無論如何都等於0。
不幸的是,它似乎沒有幫助,行爲與以前完全一樣 – whiplashomega
然後需要查看更多的用例。如果「displayItems」是一個對象而不是一個數組,那麼它將不起作用 - 否則它應該。你可以發佈你的數據點的樣子嗎?也可能想嘗試將'tagFilter'和您的數據點分配給控制器變量,而不是使用$ scope。我個人從不再使用$ scope變量,只是因爲使用'ng-if'的細微差別和其他可能導致$ scope分配變量不可訪問的指令。 –
增加了一個displayItems的例子(它最初是從服務器檢索到的JSON數據)。我通過開發工具進行了檢查,並且正在被正確引入和解釋。 – whiplashomega