单独的文件未知的提供者

时间:2015-03-10 16:39:59

标签: angularjs

我正在尝试单独使用自己的服务和控制器。我认为我做错了但是因为我继续得到未知的提供程序错误。这是我的应用程序的代码,包括服务和控制器。

TaskServices:

app = angular.module('TaskApp',[]);
app.factory('Tasks', function(Restangular) {
  return Restangular.service('tasks');
});

TaskControllers:

app = angular.module('TaskApp',[]);
//Task controller
app.controller('TaskCtrl',['Tasks', function($scope, Restangular, Tasks) {
  // loading data
  Tasks.getList().then(function(tasks){
    $scope.tasks = tasks;
  });
}]);
// Create new patient controller
app.controller('CreateTaskCtrl', function($scope, Restangular) {
});

2 个答案:

答案 0 :(得分:1)

您正在两个地方定义具有相同名称的模块

TaskServices :
app = angular.module('TaskApp',[]);


TaskControllers :
app = angular.module('TaskApp',[]);

实际上你应该在一个地方定义它,然后把它放在另一个地方...... app = angular.module('TaskApp');

答案 1 :(得分:0)

您应该注入依赖项,因为应该在controller定义的第二个参数中注入。

我的意思是下一个:

app.controller('TaskCtrl',['Tasks', function($scope, Restangular, Tasks)
由于角度尝试仅注入Tasks依赖项,

无效,因此不了解RestangularTasks。缩小上面的代码后,$scope变量将在真实的Tasks服务中。

下一个正确的语法:

app.controller('TaskCtrl',[
  '$scope', 
  'Restangular', 
  'Tasks', 
  function($scope, Restangular, Tasks) {
    // code goes here
  }
]};

您应该按顺序注入依赖项。