首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用$inject向控制器注入依赖关系

利用$inject向控制器注入依赖关系
EN

Stack Overflow用户
提问于 2016-03-29 09:16:54
回答 1查看 533关注 0票数 3

作为代码重构过程的一部分,我试图将许多依赖项注入控制器,这与John爸爸的Style一致。现在,我们的控制器看起来如下:

代码语言:javascript
复制
.controller('alerting-settings.mainController', [
    '$scope',
    '$timeout',
    '$location',    
    '$document',
    '$window',

    function($scope,
             $timeout,
             $location,
             $document,
             $window) {

据约翰·爸爸说,应该做得更像这样:

代码语言:javascript
复制
/* recommended */
angular
    .module('app')
    .controller('DashboardController', DashboardController);

DashboardController.$inject = ['$location', '$routeParams', 'common', 'dataservice'];

function DashboardController($location, $routeParams, common, dataservice) {
}

那么当我重构的时候会发生什么呢?我的结局是:

代码语言:javascript
复制
angular.module('app.alerting-settings')

.controller('alerting-settings.mainController', alerting-settings.mainController);

    alerting-settings.mainController.$inject = [
    '$scope',
    '$timeout',
    '$location',    
    '$document',
    '$window'],

问题是,我现在得到了控制台错误:

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 09:25:01

您需要将alerting-settings重命名为alertingSettings everywhere。

您可以在文件名中使用"-“,但不能在控制器/服务名称中使用,因为它们是”函数“,而在javascript中,函数名中不能使用破折号。

-> function alerting-settings()不是一个有效的函数名。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36280109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档