0
「カラー」でオブジェクトをフィルタリングする特定のカスタムフィルタを作成したい私はより大きなオブジェクトを持っていますが、この場合は小さなものを作成して問題点を示していますので、jsonがこのように表示されます:角度多重フィルタ
[
{
"nazwa": "koszule",
"colors": [
"white"
],
"rozmiary": [],
"url": "/pl/p/koszule/3693",
"rodzaj": 2,
"img": "/images/nophoto_300x300.jpg",
"muszka": null,
"alt": "koszule"
},
{
"nazwa": "koszule",
"colors": [
"blue"
],
"rozmiary": [],
"url": "/pl/p/koszule/3693",
"rodzaj": 2,
"img": "/images/nophoto_300x300.jpg",
"muszka": null,
"alt": "koszule"
},
{
"nazwa": "koszule",
"colors": [
"white",
"blue"
],
"rozmiary": [],
"url": "/pl/p/koszule/3693",
"rodzaj": 2,
"img": "/images/nophoto_300x300.jpg",
"muszka": null,
"alt": "koszule"
}
]
は、私も自分のビュー
<md-input-container class="md-block" flex-gt-sm>
<md-select ng-change="checkColors()" ng-model="kolorEnd" multiple>
<md-optgroup label="<?php echo $this->translate('kolory'); ?>">
<md-option ng-value="unikalneKoloryWidok" ng-repeat="unikalneKoloryWidok in unikalneKolory | orderBy : expression">{{unikalneKoloryWidok}} </md-option>
</md-optgroup>
</md-select>
</md-input-container>
で複数選択があり、コントローラである:
$scope.dataParsed = angular.fromJson(prdData);
angular.forEach($scope.dataParsed , function(item , i) {
angular.forEach(item.kolory , function(item , i) {
wszystkieKolory.push(item);
});
});
$scope.unikalneKolory = $.unique(wszystkieKolory);
$scope.checkColors = function(){
$scope.$watch('kolorEnd' , function(oldv,newv) {
$scope.kolory = oldv.toString();
});
};
frost.filter('colorsFlt' , function(){
return function(data,inpArray) {
var output = [];
if (angular.isArray(inpArray)) {
}
}
私が達成したいのは、「白い」オプションだけを選択すると、「白」の色を持つ製品だけが表示されます。顧客が「白」と「青」を選択すると、 ['白'、 '青']を持つ商品。 私はトラップにあります:)これを達成するために私のフィルターを書く方法を知らないでください。
コントローラ
frost.filter('megaFlt' , function(){
return function(data,firstarg , secarg , filtertype) {
var output = [];
if (angular.isString(firstarg) || angular.isString(secarg)) {
angular.forEach(data,function(el,j) {
$.map(el[filtertype],function(test,i){
if(test == firstarg || test == secarg) {
return output.push(data[j]);
}
});
});
return output;
}
else {
return data;
}
}
});
ビュー
<md-input-container class="md-block" flex-gt-sm>
<md-select ng-change="checkColors()" ng-model="kolorEnd" multiple>
<md-optgroup label="<?php echo $this->translate('kolory'); ?>">
<md-option ng-value="unikalneKoloryWidok" ng-repeat="unikalneKoloryWidok in unikalneKolory | orderBy : expression">{{unikalneKoloryWidok}} </md-option>
</md-optgroup>
</md-select>
</md-input-container>
とプット: