This is an:
var limitTo = $filter('limitTo');
var lowercase = $filter('lowercase');
var translate = $filter('translate');
var filteredValue = limitTo(lowercase(translate('ACTIVE')), 5);
Hatta
var lowercaseStatus = lowercase(translate('ACTIVE'));
var filteredValue = limitTo(lowercaseStatus, 5);
Diğer bir strateji görünümünde aynı sözdizimini kullanmak olacaktır ilginç soru. Genellikle böyle böyle bir şey ya da bir şey yapacağını:
var translatedValue = $filter('translate')('ACTIVE');
var lowercaseValue = $filter('lowercase')(translatedValue);
$scope.finalValue = $filter('limitTo')(lowercaseValue, 5)
Ben
this answer esinlenerek bir hizmeti yarattı.
app.service('FilterChain',
['$filter', function($filter) {
var chain = {
value : '',
start : function(value) {
this.value = value;
return this;
},
applyFilter : function(filterName, args) {
args = args || [];
args.unshift(this.value);
this.value = $filter(filterName).apply(undefined, args)
return this;
}
};
return chain;
}]);
Kullanımı Bu
$scope.value = FilterChain.start('Active')
.applyFilter('translate')
.applyFilter('limitTo', [5])
.applyFilter('uppercase')
.value;
diğer filtrelerle hizmetini kullanabilirsiniz gibidir ve diziler gibi nesneleri. Burada bir çalışma örneğine bakın: JSFiddle
Sorunuz tam olarak nedir? Sorunun cevabı var: zaten kontrolörde birden fazla filtre kullanıyorsunuz. –
Birden çok filtre kullanıyorum @JB Nizet. Basitleştirilmiş formatı bundan istiyorum. –
benzer: http://stackoverflow.com/questions/27852445/how-to-chain-angularjs-filters-in-controller – khakiout