我目前正在一個汽車租賃網站,我正在建設與角。ng-repeat的多角度濾鏡 - 有更好的方法嗎?
在汽車選擇部分,用戶需要能夠過濾很多不同的屬性,例如4x4,自動或手動裝置,以及汽車類別,如緊湊型,高級,跑車等。最重要的是在訂購汽車時還需要一些相當廣泛的工作。
這很容易通過標準過濾器和每個過濾按鈕的一個小指令來實現,但我可以想象,像12個過濾器一樣,ng-repeat屬性將會如何。可能沒什麼我應該害怕的,但依然如此。
我想讓你們運行的是如果有比這更好的解決方案。
這一定會不必要地混亂到最後。
這是怎麼回事現在運行:
HTML:
<div filter-btn="4x4" ng-model="filters" class="btn">4x4</div>
<div filter-btn="manual" ng-model="filters" class="btn">manual</div>
<input type="text" ng-model="filters.searchCar">
<div class="car-cont">
<div ng-repeat="car in filteredCars = (cars | filter:filters.4x4 | filter:filters.manual | filter:filters.searchCar)" class="car">{{car.model}}</div>
<div ng-show="!filteredCars.length">No cars</div>
</div>
JS:
angular.module('mabi').directive('filterBtn',[ function() {
var linkFunction = function(scope, elem, attr){
var activeFilter = attr.filterBtn;
var clickFunction = function(){
scope.$apply(function(){
if (scope.model[activeFilter] != activeFilter){
scope.model[activeFilter] = activeFilter;
} else {
scope.model[activeFilter] = "";
}
});
console.log(scope.model);
}
elem.bind('click', clickFunction);
}
return {
restrict: "A",
require: 'ngModel',
link: linkFunction,
scope: {
model: "=ngModel"
}
}
}]);