在不同的控制器文件中使用服务
服务 – optionService.js
控制器 – app.js&welcomeCtrl.js&otherCtrl.js
app.js
var app = angular.module('mainapp', ['mainapp.welcome','optionServiceModule']); app.controller('mainappCtrl', function ($scope,optionService) { optionService.fetchOptionDetails().success(function(response){ $scope.option = response; }); });
welcomeCtrl.js
var app = angular.module('mainapp.welcome', ['optionServiceModule']); app.controller('welcomeCtrl',[function($scope,optionService) { optionService.fetchOptionTwoDetails().success(function(response){ $scope.OptionTwo = response; }); }]);
optionService.js
var app = angular.module('optionServiceModule',[]); app.factory('optionService',['$http',function($http) { var obj = {}; obj.fetchOptionDetails = function(){ return $http.get('localhost/api/option/optionOne'); } obj.fetchOptionTwoDetails = function(){ return $http.get('localhost/api/option/optionTwo'); } return obj; }]);
optionService在app.js中工作正常,但在WelcomeCtrl.js中发生错误
错误
Cannot read property 'fetchOptionTwoDetails' of undefined
想知道如何使用多个控制器文件中的服务?
先谢谢你
像这样将$scope
和optionService
注入到控制器中
app.controller('welcomeCtrl',['$scope','optionService',function($scope,optionService) { optionService.fetchOptionTwoDetails().success(function(response){ $scope.OptionTwo = response; }); }]);
签出这个Jsfiddle链接
Js代码
var app1 = angular.module('mainapp.welcome', ['optionServiceModule']); app1.controller('welcomeCtrl', function($scope, optionService) { optionService.fetchOptionTwoDetails().success(function(response) { $scope.OptionTwo = response; }); });
你添加了[]但忘记了添加依赖项