0
我有一個產品JSON文件,JSON文件中的每個產品都有自己的一組標籤(其中一些在其他產品中共享!)。是否可以使用ng-repeat創建數組中找到的標籤列表,然後點擊這些生成的標籤,然後通過點擊標籤過濾頁面上的項目?每個屬性只應在列表中出現一次,不應有重複的屬性。這是可能的還是將過濾器必須是硬編碼?對於Angular來說,我還很新,所以不確定它的侷限性。按陣列分類的角度篩選器
我有一個產品JSON文件,JSON文件中的每個產品都有自己的一組標籤(其中一些在其他產品中共享!)。是否可以使用ng-repeat創建數組中找到的標籤列表,然後點擊這些生成的標籤,然後通過點擊標籤過濾頁面上的項目?每個屬性只應在列表中出現一次,不應有重複的屬性。這是可能的還是將過濾器必須是硬編碼?對於Angular來說,我還很新,所以不確定它的侷限性。按陣列分類的角度篩選器
創建一個函數來遍歷所有產品中的所有屬性,如果該屬性不存在,則將該屬性添加到數組中。
$scope.getAttributes = function(){
var attributes = [];
angular.forEach($scope.data, function(item){
angular.forEach(item.attributes, function(attribute){
if(attributes.indexOf(attribute) == -1)
attributes.push(attribute);
})
})
return attributes;
}
現在你可以在HTML創建的標籤列表這些屬性:
<div ng-repeat="a in getAttributes()" ng-click="setFilter(a)">{{a}}</div>
點擊屬性將設置一個selectedAttribute
變量,它是用來過濾產品列表:
<table>
<tdata>
<tr ng-repeat="d in data | filter:{attributes: selectedAttribute}">
<td>{{d.name}}</td>
<td>{{d.attributes}}</td>
</tr>
</tdata>
</table>
這是偉大的,但當涉及到實施它我自己,代碼不會超過$ scope.getAttributes中的第4行?將它複製到蹦牀的T ... – leaksterrr
什麼是錯誤?你在使用Angular的最新版本嗎? – Jerrad
nvm,我修復了它,謝謝! – leaksterrr