Фильтр диапазона работает только в первом контроллере

0

У меня есть фильтр диапазона (код ниже), и он работает только на моем первом контроллере. Я добавил в другие контроллеры этот фильтр таким же образом в app.js и в html и не работал, и я не знаю почему?

В консоли у меня нет ошибок.

Код фильтра диапазона:

appPokayoke.filter('rangeFilter', function() {
    return function(input, min, max) {
        min = parseInt(min); //Make string input int
        max = parseInt(max); //Make string input int

        for (var i=min; i<max; i++)
            input.push(i);
            return input;
    };
});

мой файл app.js:

(function(){


    var appPokayoke = angular.module('appPokayoke', ['ngRoute', 'pyService']);

    appPokayoke.config(['$routeProvider', function($routeProvider) {

        code ...

    }]);

    appPokayoke.controller('DrawingsListCtrl', ['$scope', 'drawings', 'pantons', function ($scope, drawings, pantons) {

        code ...

    }]);

    appPokayoke.controller('DrawingDetailsCtrl', ['$scope','drawings', 'articles', '$routeParams', 'articlesOfDrawings', 'pantonClass', function ($scope, drawings, articles, $routeParams, articlesOfDrawings, pantonClass, rangeFilter ) {

        code ...

    }]);

    appPokayoke.controller('CreateArticleCtrl', ['$scope', '$http','pantons','$routeParams', 'articles', '$location', function ($scope, $http, pantons, $routeParams, articles, $location, rangeFilter) {

        code ...

    }]);

    appPokayoke.controller('CreateArticleColorsCtr', ['$scope', '$http','$routeParams', 'articles', '$location', 'articlesOfDrawings', function ($scope, $http, $routeParams, articles, $location, articlesOfDrawings, rangeFilter ) {

        code ...

    }]);

    appPokayoke.filter('rangeFilter', function() {
        return function(input, min, max) {
            min = parseInt(min); //Make string input int
            max = parseInt(max); //Make string input int

            for (var i=min; i<max; i++)
                input.push(i);
                return input;
        };
    });

})();

в html:

<table class="table table-bordered table-hover table-striped">
    <thead>
        <tr>
            <th width="7%">Lp.</th>
            <th  width="10%">Article <i class="fa fa-chevron-down"></i> </th>
            <th width="10%">Colors in article</th>
            <th ng-repeat="m in [] | rangeFilter:0:pyNumber track by $index">{{$index+1}}</th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="article in articlesOfDrawings | filter : search track by $index">
            <td>{{$index+1}}</td>
            <td ng-repeat="column in article" style="background-color: rgb({{column[1]}});"  ><p>{{ column[0] }}</p></td> 
        </tr>
    </tbody>
</table>

EDIT: Код контроллера, в котором фильтр не работает: appPokayoke.controller('CreateArticleColorsCtr', ['$ scope', '$ http', '$ routeParams', 'articles', '$ location', 'articlesOfDrawings', function ( $ scope, $ http, $ routeParams, статьи, $ location, articlesOfDrawings, rangeFilter) {

        var drawingId = $routeParams.drawingId;
        var pyNumber = $routeParams.pyNumber;
        console.log(pyNumber);

        $scope.rangeFilter = function(max) {
          return max = pyNumber;
        };

       $scope.articleColors = {};
       $scope.articleColorsData = {};

       articles.getNewArticle(
            $routeParams.articleName, 
            $routeParams.drawingId,
            function (data) {
                if(data !== '') {
                    $scope.articleColors = data;
                }
                else {
                    console.log('not ok articleColors');  
                }
            }
        );

        articlesOfDrawings.getArticlesOfDrawings(
            $routeParams.pyNumber, 
            $routeParams.drawingId,
            function (data) {
                if(data !== '') {
                    $scope.articlesOfDrawings = data;
                }
                else {
                    console.log('not ok articlesOfDrawings');  
                }
            }
        );


        $scope.saveArticleColors = function (articleColorsData, success) {

            success = success || function() {};

            $http.post('api/admin/articles/save_colors/', 
                articleColorsData ).success(function (data){
                console.log(data);
                    success(data.articleColorsData);
                    $scope.articleColorsData = articleColorsData;
                    console.log($scope.articleColorsData);
                    //$location.path('/drawings/'+ drawingId + '/' + pyNumber);

            }).error(function (){
                console.log('Problem ArticleColors');
            });

        }

    }]);
  • 0
    не могли бы вы добавить jsfiddle или plunker для своего кода, не зная, что вы пытаетесь сделать
  • 0
    У меня есть рабочий фильтр в этом коде . Здесь он генерирует количество столбца. Или вам нужен весь код?
Показать ещё 2 комментария

1 ответ

1
Лучший ответ

Поместите pyNumber в свой объем, чтобы вы могли его вызвать из своего фильтра следующим образом:

$scope.pyNumber = $routeParams.pyNumber;
        console.log($scope.pyNumber);

      // you don't need this function 
      //  $scope.rangeFilter = function(max) {
      //    return max = pyNumber;
      //  }; 
  • 0
    Огромное спасибо!! Это помогает !! :)

Ещё вопросы

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