在角度控制器中命名命名函数

时间:2016-10-05 00:56:25

标签: angularjs

所以我在我的项目中一直使用这样的命名函数:

angular
    .module('meanhotel')
    .controller('HotelsController', HotelsControllerFn)

//HotelsControllerFn.$inject = ['']

function HotelsControllerFn(){
    var vm = this;
    vm.title = 'MEAN Hotel App';
}

但突然之间,我收到了像

这样的错误
angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module meanhotel due to:
ReferenceError: HotelsController is not defined

这迫使我重命名我的功能与控制器相同,(然后一切正常)。

angular
    .module('meanhotel')
    .controller('HotelsController', HotelsController)

//HotelsController.$inject = ['']

function HotelsController(){
    var vm = this;
    vm.title = 'MEAN Hotel App';
}

对此有何看法?我以为我可以把这个功能命名为我想要的任何东西......

1 个答案:

答案 0 :(得分:1)

如果在没有[]参数的情况下执行angular.module,则会检索现有模块。在您的代码中,您可以参考名为HotelsController的函数。由于模块无法跟踪它,因此必须抛出错误。

如果您更改参考或创建这样的模块,它应该开始working.angular     .module(' meanhotel',[])     .controller(' HotelsController',HotelsControllerFn)