我在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未定义
为什么?
答案 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>