Передача аргумента для фильтра не в шаблоне HTML

0

Мы можем передавать аргументы для фильтрации в шаблоне, например:

<li ng-repeat="friend in friends | someFilter:var1">

для

 angular.module('myApp.filters', [])
    .filter('someFilter', function () {
        return function (input, var1) {

            return var1;
        }
     });

но как передать переменную, когда фильтр назначен в контроллере, когда у меня нет доступа к внутреннему шаблону компонента, который я использую. Например, столбец ui-grid имеет свойство cellFilter.

Например, я хочу передать данные из $ resource в фильтр

Теги:
angular-ui-grid

2 ответа

0

вы можете получить доступ к области управления с помощью grid.appScope

для иллюстрации вашего шаблона ячейки:

cellTemplate: "<div class='ui-grid-cell-contents'>{{ row.entity.userName | someFilter: grid.appScope.var1}}</div>",

И в вашем контроллере:

 $http.get('/url/blablab').success(function(){
    $scope.var1 = "value passed to filter"
 })
0

Если у вас есть в шаблоне:

<li ng-repeat="friend in friends | someFilter:var1">

Это будет у вас в контроллере:

$filter('someFilter')(friend, var1); // $filter('filterName')(filteredValue, args)

Ещё вопросы

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