1

服务 - 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 

想知道如何使用服务在多个控制器文件?

预先感谢您

+0

您是否正在缩小代码? –

+0

尚未..但会在申请完成后@ RaghuVenmarathoor –

回答

2

注入$scopeoptionService到控制器这样

app.controller('welcomeCtrl',['$scope','optionService',function($scope,optionService) { 
     optionService.fetchOptionTwoDetails().success(function(response){ 
      $scope.OptionTwo = response; 
     }); 
    }]); 
+0

谢谢@Sachilaranawanka –

+0

@Insane噪音没有概率。请确保标记为答案,如果这有帮助:D –

1

结帐字符串这Jsfiddle link

JS代码

var app1 = angular.module('mainapp.welcome', ['optionServiceModule']); 
    app1.controller('welcomeCtrl', function($scope, optionService) { 
    optionService.fetchOptionTwoDetails().success(function(response) { 
     $scope.OptionTwo = response; 
    }); 
    }); 

您添加了[]但忘记添加依赖项

+0

我在哪里忘了添加依赖关系@JayantPatil –

+0

这是更新代码PLZ添加此代码并测试您的应用 –

+0

对不起,对于最近的回复@jayantpatil我试过这个,它给出同样的错误** SORRY ** –

相关问题