2017-02-10 27 views
0

私はAngularに戻っていますが、私は迷っています。私は以前のプロジェクトで使用していたDataagridディレクティブを利用しています。私がしようとしているのは、単純なデータを表示することだけです。

define([ 
    'angular', 
    'components/home/home-controller', 
    '../../../js/px-datagrid' 
], function (angular, homeController, pxDatagridDirective) { 
    'use strict'; 
    var homeModule = angular.module('app.home', ['ui.grid']); 
    homeModule.controller('home', ['$scope','$timeout','$log','$http','$filter',homeController]); 
    homeModule.directive('pxDatagrid', [ '$log','$filter',pxDatagridDirective ]); 
}); 

そして、ここでは、PX-datagrid.jsの重要な部分です:ここ

は私のモジュール呼び出し、それを使用しているどんなに私は何をすべきか

define(['angular', 'text!./px-datagrid.tmpl', 'angular-ui-bootstrap', 
     'angular-sanitize'], 
     function(angular, tmpl, angularBootstrap) { 
      return function($log, $filter){ 
       var PxDatagrid = { 
        ... 
        applyFilters: function($scope, $log, $filter){ 
         if($scope.tableData && ($scope.tableData.$resolved || $scope.tableData.length > 0)){ 
          var filtered = $filter('filter')($scope.tableData, $scope.searchText); 
          filtered = $filter('orderBy')(filtered, $scope.sortBy, $scope.sortOrder === 'desc'); 
          //removes dependency on startFrom filter 
          filtered = filtered.slice(($scope.currentPage - 1) * $scope.itemsPerPage); 
          $scope.filtered = $filter('limitTo')(filtered, $scope.itemsPerPage); 
         } else { 
          $scope.filtered = null; 
         } 
        } 
        ... 
       } 
      } 
     } 

、私は次のエラーを取得しますapplyFiltersに:

TypeError: $filter is not a function

これは、同じ依存性の注入、同じ構造を持っているようです、前と同じように私が見つけることができるものと同じです(それが働いた場所)。私が見つけることができるすべての情報はちょうどそれを注入すると言う、それは動作します...私は行方不明の単純なものがなければなりません。

答えて

0

返信用この

define(['angular', 'text!./px-datagrid.tmpl', 'angular-ui-bootstrap', 
     'angular-sanitize','$filter'], 
     function(angular, tmpl, angularBootstrapm, sanitize, $filter) { 
      return function($log, $filter){ 
       var PxDatagrid = { 
        ... 
        applyFilters: function($scope, $log){ 
         if($scope.tableData && ($scope.tableData.$resolved || $scope.tableData.length > 0)){ 
          var filtered = $filter('filter')($scope.tableData, $scope.searchText); 
          filtered = $filter('orderBy')(filtered, $scope.sortBy, $scope.sortOrder === 'desc'); 
          //removes dependency on startFrom filter 
          filtered = filtered.slice(($scope.currentPage - 1) * $scope.itemsPerPage); 
          $scope.filtered = $filter('limitTo')(filtered, $scope.itemsPerPage); 
         } else { 
          $scope.filtered = null; 
         } 
        } 
        ... 
       } 
      } 
     } 
+0

感謝をお試しください! これを試してみると、 "$ filter.js:1"に対して "Uncaught SyntaxError:Unexpected token <"が表示されます。そのファイルを探していて、存在しないようです。 他のアイデアはありますか? – brettvd

+0

定義ブロックから '$ filter'を削除し、' function(angular、tmpl、angularBootstrapm、sanitize、$ filter) 'のみを追加します。 –

+0

これを行うと、" $ filter is not function "というエラーが発生します... 通知私はまた、次のようなコンソールにエラーが表示されています: "エラー:[$ injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=%24modalProvider%20 %3C-%20%24Modal%20%3C-%20PlmiCardBanner%20%3C-%20PlmiCardListBanner " 私はそれを少し読んでいますが、これを引き起こしている可能性のあるものは何も分かりません。私は '$ filter'を解決できないと思っていますが、なぜか分かりません... – brettvd

関連する問題