如何在angularjs中向主控制器注入服务?

如何在angularjs中向主控制器注入服务?,angularjs,Angularjs,我能够将AuthDetails服务注入到我的应用程序的其他组件中,但是我在将AuthDetails服务注入到应用程序中的主控制器时遇到问题,我尝试了以下操作,但它不起作用。它表示:未捕获引用错误:未定义AuthDetails MPlayApp.controller('MainCtrl','AuthDetails', [AuthDetails, function MainCtrl(AuthDetails) { var subscription = AuthDetails.subscribe

我能够将AuthDetails服务注入到我的应用程序的其他组件中,但是我在将AuthDetails服务注入到应用程序中的主控制器时遇到问题,我尝试了以下操作,但它不起作用。它表示:未捕获引用错误:未定义AuthDetails

MPlayApp.controller('MainCtrl','AuthDetails', [AuthDetails,
function MainCtrl(AuthDetails) {
    var subscription = AuthDetails.subscribe(function onNext(d) {
        console.log(d);
        if(d.success){
            this.loggedIn = true;
        }
    });
}]);
我已将该服务添加到应用程序中,如下所示

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模块下

语法错误。应该是

MPlayApp.controller('MainCtrl', ['AuthDetails', function MainCtrl(AuthDetails) {
或者更好的方法是使用ng annotate,让它在构建过程中从基本的、直观的语法为您生成这种难看的、容易出错的语法:

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