这两种声明AngularJS控制器的方式有何不同?

时间:2014-05-17 08:57:51

标签: javascript angularjs dependency-injection

这两个是否相等?

后者只是编写控制器的“速记方式”吗?

angular.module("root", [])
.controller("index", ["$scope", function ($scope) {
    // ..
}]);

VS

angular.module("root", [])
.controller("index", function ($scope) {
    // ..
});

谢谢!

1 个答案:

答案 0 :(得分:1)

将名称重复为字符串(称为property annotation)是为了防止错误。 JavaScript minifiers通常会破坏变量名称,这会阻止Angular按名称查找依赖项以注入它们。 Mangling对字符串没有影响,因此如果它们被注释,注入器仍然可以查找它们。

如果绝对可以删除属性注释,请确保您的代码不会被破坏。如果您正在与某人合作,或者您正在编写图书馆,请使用它。