2016-08-03 1 views
0

ngTable을 만들 때 공장과 컨트롤러를 분리하려고하면이 오류가 발생합니다.ui.router를 사용한 ngTable

angular.js:12332 Error: [$injector:unpr] Unknown provider: ngTableParamsProvider <- ngTableParams <- SCODataCtrl 
http://errors.angularjs.org/1.4.2/$injector/unpr?p0=ngTableParamsProvider%20%3C-%20ngTableParams%20%3C-%20SCODataCtrl 
    at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:68:12 
    at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:4264:19 
    at Object.getService [as get] (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:4411:39) 
    at http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:4269:45 
    at getService (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:4411:39) 
    at Object.invoke (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:4443:13) 
    at extend.instance (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:9001:34) 
    at nodeLinkFn (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:8111:36) 
    at compositeLinkFn (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:7543:13) 
    at publicLinkFn (http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.js:7418:30) <div ui-view="" class="ng-scope"> 

메인 js 파일, 컨트롤러 및 공장 파일에 포함 된 부분이 잘못되었음을 알 수 없습니다. 해당 파일은 다음과 같습니다.

var myApp=angular.module("myApp", ['ui.router', 'ngTable']); 

myApp.config(function($stateProvider, $urlRouterProvider){ // part of the ui library downloaded 
    $stateProvider 
     .state("settings.SCOData", { // child templtes to settings layout 
      url: "/SCOData", 
      templateUrl: "templates/SCOData.html", //this is in the root of the www. it all depends on the folders 
      controller: 'SCODataCtrl' 
     }) 
     $urlRouterProvider.otherwise("/settings"); 
}); 

메모를 app.js : 나는 사용자의 편의를

SCODataCtrl.js

var myApp=angular.module("myApp"); 

    myApp.controller('SCODataCtrl', function($scope, $filter, $timeout, ngTableParams, ScoData) { 
     // $scope is variables and arguments accessable to template (we're providing them) 

     $scope.tableParams = new scoDataTable({ 
      page:1, 
      count:10 
     }, { 
      total: $scope.users.length, 
      getData: function($defer, params) { 
       callServer.getData($defer,params,$scope.filter).then(function(){ 
       $scope.tableParams.settings({data:data}); 
      }); 
     } 
     }); 

     $scope.$watch("filter.$", function() { 
      $scope.tableParams.reload(); 
     }); 
    }); 

scoData.js

var myApp = angular.module("myApp"); 

    myApp.factory('ScoData', function($http, $q, $timeout){ 
     var service = {}; 

     service.callServer = function(){ 
      var deferred = $q.defer(); 
      $http({ 
       url:'php/getScoData.php' 
       }).success(function(data){ 
        $scope.data = $scope.users.slice(params.page() * params.count(), params.page * params.count()); 
        $defer.resolve($scope.data); 
       }).error(function(){ 
        deferred.reject("No connection could be estabishled.") 
      }) 
      return deferred.promise 
     } 
     return service; 
    }); 

감사에 대한 내 다른 상태를 제거한 어떤 헬기 피. 문제를 파악하기 위해 다른 것이 필요한지 알려주십시오.

답변

0

[ 'ScoData', function ...]을 내 컨트롤러에 추가하여 수정했습니다.

myApp.controller('SCODataCtrl', ['ScoData', function($scope, $filter, $timeout, ngTableParams, ScoData) {}]); 
관련 문제