【问题标题】:AngularJS - What is the correct syntax to initialize a controller?AngularJS - 初始化控制器的正确语法是什么?
【发布时间】:2016-01-12 17:29:39
【问题描述】:

我一直在关注一些关于 AngularJS 的教程,我注意到有多种方法可以初始化控制器。

例如,以下代码基于 AngularJS 文档:

angular.module('todoList', [])
.controller('todoListCtrl', ['$scope',
    function ($scope) {
        ...
    }
]);

不过,这段代码也可以:

angular.module('todoList', [])
.controller('todoListCtrl',
    function ($scope) {
        ...
    }
);

一种方法优于另一种方法吗?

【问题讨论】:

    标签: javascript angularjs syntax


    【解决方案1】:

    第二种语法不是缩小安全的。缩小后,uglifier 将重命名$scope,这意味着AngularJS 注入器将无法正确注入它,因为注入器使用名称匹配来识别要解决的依赖关系。

    添加了第一个语法来解决此问题,它是您应该用于生产应用程序的语法。

    【讨论】:

    • 我从未听说过 uglifier 这个名字,这可能是我前任使用的工具
    • Closure、Grunt/gulp 包、RequireJS、Webpack ......它们都有一个“uglifier”,可以重命名代码库以压缩它。例如:npmjs.com/package/gulp-uglify
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2012-06-30
    相关资源
    最近更新 更多