为什么我得到"服务没有定义"角页中的错误消息?

时间:2016-06-25 20:19:49

标签: javascript angularjs angular-ui-router

我在script.js文件中有这段代码:

scotchApp.factory('myService', function() {
 var savedData = {}
 function set(data) {
   savedData = data;
 } 
 function get() {
  return savedData;
}

return {
  set: set,
  get: get
}

});

scotchApp.controller('SharedController',['$scope', 'myService', function($scope) { 
  myService.set('hello');
  $scope.message = myService.get();
}]);

当我尝试上传使用此代码的html时,我会使用chrome(F12模式): angular.js:12722 ReferenceError:myService未定义

为什么?

2 个答案:

答案 0 :(得分:4)

您从未将您的服务注入控制器。正确的代码:

scotchApp.controller('SharedController', ['$scope', 'myService', function($scope, myService) { 
  myService.set('hello');
  $scope.message = myService.get();
}]);

注意控制器功能签名function($scope, myService) {...}

答案 1 :(得分:1)

大多数情况下,您可能没有在index.html中添加服务脚本

<script src="src/your_path/script.js" ></script>