2017-07-08 61 views
0

我能夠將AuthDetails服務注入到我的應用程序的其他組件中,但是我在註冊AuthDetails服務到應用程序中的主控制器時遇到問題,我嘗試了以下操作,但無法使用。它說:未捕獲的ReferenceError:AuthDetails沒有定義如何在angularjs中向主控制器注入服務?

MPlayApp.controller('MainCtrl','AuthDetails', [AuthDetails, 
function MainCtrl(AuthDetails) { 
    var subscription = AuthDetails.subscribe(function onNext(d) { 
     console.log(d); 
     if(d.success){ 
      this.loggedIn = true; 
     } 
    }); 
}]); 

我已經加入了服務到App如下

var MPlayApp = angular.module('MPlayApp', [ 
// ...which depends on the MPlayApp module 
'player', 
'core', 
'userMenu', 
'home', 
'songUpload', 
'loginSignUp', 
'details', 
'angularSoundManager', 
'angularFileUpload', 
'ngAnimate', 
'rx', 
'ui.router', 
'core.auth' 
]); 

AuthDetails服務正在core.auth模塊

+1

'MPlayApp .controller('MainCtrl',['AuthDetails', function(AuthDetails){' – Satpal

回答

0

的語法是錯誤的。它應該是

MPlayApp.controller('MainCtrl', ['AuthDetails', function MainCtrl(AuthDetails) { 

或者更好,使用NG-註釋,並讓它在構建過程中爲您生成這個醜陋的,容易出錯的語法,從基本的,直觀的語法:

MPlayApp.controller('MainCtrl', function MainCtrl(AuthDetails) {