Можно ли получить возвращаемое значение углового фильтра в области контроллера. Мне нужно передать возвращаемое значение одного фильтра другому фильтру. У меня есть фильтр, который определяется следующим образом
.filter('Filter', Filter)
function Filter($filter) {
return FilterFn;
function FilterFn(data, weight, waist) {
var factor1 = weight * 1.082 + 94.42;
var factor2 = waist * 4.15;
var leanBodyMass = factor1 - factor2;
var bodyFatWeight = weight - leanBodyMass;
var bodyFatResults = bodyFatWeight * 100 / weight;
// return Params
if (bodyFatResults === "-Infinity") {
// $filter('Filter2')(0);
return 0;
} else if (parseFloat(bodyFatResults) < 0) {
// $filter('Filter2')(2);
return 2;
} else {
// $filter('Filter2')(bodyFatResults.toFixed(1));
return bodyFatResults.toFixed(1);
}
}
}
Мне нужно получить возвращаемое значение этого фильтра в области контроллера.
Внесите фильтр $ внутри вашего контроллера и используйте его так:
.controller('Controller', function($filter) {
var filtered = $filter('Filter2')(data, weight, waist);
});
Вам необходимо передать свой фильтр вашему контроллеру, например:
var myApp = angular.module('myApp',[]);
myApp.controller('GreetingController', ['$scope', function($scope) {
$scope.foo = $filter('yourFilter')();
}])
.filter('yourFilter', function() {
return 'hello';
});
вы можете ввести службу $ filter на свой контроллер и использовать с ней свои собственные фильтры:
.controller(["filter", function($filter) {
var somevariable = $filter("Filter2")(data, weight, waist);
});
См. Документы