如果你看看下面的代碼,我想使用文本<input>
來過濾每個菜單項的多個成分 - 例如,如果用戶在<input>
中輸入「牛肉,培根」,應用程序將返回所有與牛肉或培根作爲配料的菜單項目。AngularJS過濾 - 多個表達式或動態鏈接過濾器?
我目前正在嘗試使用ng-filter來做到這一點,我猜我需要爲此創建一個自定義過濾器。這是錯誤的做法?有沒有辦法動態鏈式過濾器呢?
下面是一些代碼,應該讓我的問題意識 -
我的搜索模式: - 注意:使用NG列表把字符串轉換成字符串數組
<div ng-init="searchString=[]">
<input type="text" ng-model="searchString" ng-list>
</div>
我的重複循環: - 注意:使用自定義過濾器將每個成分加入到一個字符串中
<tr ng-repeat="item in menu | filter:{ category : 'Classics' } | filter:{ ingredients : searchString } ">
<td class="title">{{ item.title }}</td>
<td class="ingredients">
{{ item.ingredients | join:', ' }}
</td>
<td class="price">{{ item.price | currency }}</td>
</tr>
我的數據結構
$scope.menu = [
{
"title" : "New Yorker",
"price" : "4.00",
"ingredients" : [
"Salt Beef",
"Pickles",
"Mustard"
],
"category" : "Classics"
},
{
"title" : "BLT",
"price" : "4.00",
"ingredients" : [
"Bacon",
"Lettuce",
"Tomato"
],
"category" : "Classics"
}
]