javascript - 为什么我在 Angular 页面中收到 "service is not defined"错误消息?

标签 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 未定义

为什么?

最佳答案

您从未将您的服务注入(inject)到 Controller 中。正确代码:

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

注意 Controller 函数签名 function($scope, myService) {...}

关于javascript - 为什么我在 Angular 页面中收到 "service is not defined"错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032623/

相关文章:

angularjs - angular-ui-router:在 Controller 中使用 $state 的依赖关系是什么?

javascript - 我应该如何在 Angular ui-router 中创建 templateUrl 属性的路径?

javascript - 删除未使用的 Javascript base.js (Youtube iframe api)

javascript - 滚动主要内容 Div 时可滚动的侧边栏

javascript - globalcompositeoperation=source-over 是否与 putimagedata 一起使用?

angularjs - Angular 文档 : how can one share stateless/stateful code between controllers?

javascript - AngularJS工厂不保留值(value)

javascript - 如何使用 angularjs 将多个表单数据一次性发送到服务器?

angularjs - onSuccess 转换回调 UI 路由器

javascript - 使用 JavaScript 进行 Cucumber/Capybara 测试似乎不会只执行一项也使用 ActionCable 和 Redis 的测试