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

时间:2017-07-08 06:40:36

标签: angularjs

我能够将AuthDetails服务注入到我的应用程序的其他组件中,但是我在将AuthDetails服务注入应用程序中的主控制器时遇到了问题,我尝试了以下但是它不起作用。它说:未捕获的ReferenceError:未定义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模块下

1 个答案:

答案 0 :(得分:0)

语法错误。它应该是

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

或者更好的是,使用ng-annotate,让它在构建过程中从基本直观的语法中为您生成这种丑陋,容易出错的语法:

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