Angular アプリを作成し、いくつかの新しいフィルターを作成するとします: odd
s のみを表示し、lucky
数字のみを表示します。
oddList
フィルターとフィルターがありluckyList
ます。
var app = angular.module('app', []);
app.filter('oddList', function() {
return function(items) {
var filtered = [];
angular.forEach(items, function(item) {
if (item % 2 !== 0)
filtered.push(item);
});
return filtered;
};
});
app.filter('luckyList', function() {
return function(items) {
var filtered = [];
angular.forEach(items, function(item) {
if (item === 2 || item === 7 || item === 11)
filtered.push(item);
});
return filtered;
};
});
ビュー部分では、これらのフィルターをチェーンできます。
<ul><li ng-repeat="number in numbers | oddList | luckyList">{$number}</li></ul>
これが機能するとき、私は見7
て11
残ります。
これに対してフィルター変数を作成したいと思いますng-repeat
。このプロセスに似た私にできることはありますか?
filter:listFilter
コントローラーで動的に更新できるように、変数フィルターに名前を付けたとします$scope.listFilter
。
<ul><li ng-repeat="number in numbers | filter:listFilter">{$number}</li></ul>
そして、疑似コードを含むコントローラー:
app.controller('main', function($scope, $filter) {
$scope.numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
$scope.listFilter = $filter('oddList | luckyList');
});
コントローラーで (可変) フィルターをチェーンする方法はありますか? 奇数、幸運、および/またはその両方を切り替えることができるようにしたいと考えています。