【问题标题】:Angular Controller Arguments角度控制器参数
【发布时间】:2013-12-31 11:13:34
【问题描述】:

这是来自此页面的角度代码:http://docs.angularjs.org/guide/controller

1 var myApp = angular.module('myApp',[]);
2 
3 myApp.controller('GreetingCtrl', ['$scope', function($scope) {
4     $scope.greeting = 'Hola!';
5 }]);

在上面的第 3 行,字符串 '$scope' 的用途是什么?

我不能这样做吗? myApp.controller('GreetingCtrl', function($scope) { ... })

有一个数组和参数名称有什么好处?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    参数的原因是确保角度依赖注入器在代码缩小的情况下能够识别要注入的对象。

    请参阅 Angular 网站上的 A Note on Minification 部分。

    【讨论】:

    • 感谢您的回答!我接受了一个不同的答案,因为它包含更多信息。谢谢!
    • 我认为互联网已经满了,所以不想在这里复制 Angular 网站上已有的内容;)
    【解决方案2】:

    是的,你绝对可以写myApp.controller('GreetingCtrl', function($scope) { ... }) .

    两种方式都对。

    不同之处在于您是对函数进行内联注释,因此当您缩小脚本时,您的依赖项可以正常工作。

    当您将 $scope 作为函数的参数写入时,角度编译器会在您的控制器中注入范围变量。它必须只是 $cope 而已。

    因此,当您缩小脚本时,变量的名称会发生​​变化。因此,在正常情况下,如果您更改名称变量,您的脚本将无法工作。所以你在数组表示法中写下变量的实际名称(这是在 angularJS 中注释的方式)。

    查看Angular JS官方文档:[Angular JS Dependency Injection1

    【讨论】:

    • 有一个非常简洁的github.com/btford/grunt-ngmin 允许您编写不太冗长的版本,然后在构建过程中填充缩小安全版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2015-03-05
    • 1970-01-01
    • 2017-05-21
    • 2013-08-15
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多