我有一個對象narrow.searchedMenu
帶有3個等長的子數組,我使用ng-repeat
和track by $index
顯示,因爲有一些重複的元素。
<ul>
<li ng-repeat="item in narrow.searchedMenu.description track by $index">
{{ narrow.searchedMenu.name[$index] }},
{{ narrow.searchedMenu.short_name[$index] }},
{{ narrow.searchedMenu.description[$index] }}</li>
</ul>
我需要能夠通過保持只有那些結果,其中一個關鍵字出現在description
過濾顯示的結果。如果一個description
不匹配我想exlcude name
和short_name
以及description
。
通常我會使用這樣的:
| filter{description:'chicken'}
追加到ng-repeat
語句的結束。但是,它似乎不適用於track by
。
它給我的控制檯上的錯誤,當我嘗試:
Error: [$parse:syntax] http://errors.angularjs.org/1.5.8/ $parse/syntax?p0=%7B&p1=is%20an%20unexpected%20token&p2=16&p3=NaNndex%20%7C%filter%7Bdescription%3A'chicken'%7D&p4=%7Bdescription%3A'chicken'%7D
我試過其他幾個可能的解決方案,但到目前爲止沒有運氣。
注意,$scope
沒有注入到我的控制器,如果我嘗試使用自定義過濾器,我得到了以下錯誤:
"Error: [filter:notarray] errors.angularjs.org/1.5.8/filter/notarray?p0=0";
最後一兩件事 - 我被告知,以避免因爲它includes
沒有得到足夠廣泛的支持(有人說polyfill
是另一種選擇,但我不確定它是否適用於此?)。
謝謝。好點子。我想我試過這個,但有一個問題,因爲$範圍沒有注入到我的控制器。讓我試試它很快。更新:好吧,這似乎是問題,它給了我'ReferenceError:$範圍沒有定義'。嗯,我只是試圖注入$範圍到控制器,但它仍然給出了該錯誤。我不確定是否因爲我正在使用承諾和/或使用控制器作爲語法。它是否必須在$範圍內? –
好吧,我把這個過濾器放在另一個對象中,我認爲它現在可以「看到」它,但它給了我另外一個錯誤,我遇到了一些早期的嘗試:「錯誤:[filter:notarray] http://errors.angularjs .org/1.5.8/filter/notarray?p0 = 0「 –
我已經添加了一個工作片段。這應該工作:) – nikjohn