как получить значение углового фильтра в области видимости контроллера

0

Можно ли получить возвращаемое значение углового фильтра в области контроллера. Мне нужно передать возвращаемое значение одного фильтра другому фильтру. У меня есть фильтр, который определяется следующим образом

     .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);
        }
    }
}

Мне нужно получить возвращаемое значение этого фильтра в области контроллера.

  • 0
    Обычно фильтры используются для отображения значения в представлении в слегка отформатированном виде, поэтому фильтры не заботятся о области видимости. Могу ли я знать, почему вы хотите это отформатированное значение внутри области?
  • 0
    На основании отформатированного значения я буду устанавливать статус.
Показать ещё 4 комментария
Теги:

3 ответа

2

Внесите фильтр $ внутри вашего контроллера и используйте его так:

.controller('Controller', function($filter) {
    var filtered = $filter('Filter2')(data, weight, waist);
});
0

Вам необходимо передать свой фильтр вашему контроллеру, например:

var myApp = angular.module('myApp',[]);

myApp.controller('GreetingController', ['$scope', function($scope) {
  $scope.foo = $filter('yourFilter')();
}])

.filter('yourFilter', function() {
    return 'hello';
});
0

вы можете ввести службу $ filter на свой контроллер и использовать с ней свои собственные фильтры:

.controller(["filter", function($filter) {

var somevariable = $filter("Filter2")(data, weight, waist);

});

См. Документы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню