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 ** –

相關問題