当前位置: 首页 > 面试题库 >

定义AngularJS控制器时使用数组符号的原因

龙俊德
2023-03-14
问题内容

抱歉,这个问题听起来太明显了。

我最近开始探索和学习AngularJS。我已经看了一些不错的教程-

  • 官方文件
  • w3cSchool
  • 一些不错的网站

..还有其他一些我见过的。

我并不是说我已经阅读/研究了所有文档。

问题从这里开始-

现在,提一个问题,我发现Controller的定义在一个地方是不同的,而在其他地方则是不同的-

一个定义使用一种数组表示法(不确定官方术语)进行注入:

app.controller("MyCtrl", ['$scope', function($scope){
    $scope.someData = "Array notation";
}]);

就是这样,没有数组:

app.controller("MyCtrl", function($scope){
    $scope.someData = "non-array notation";
});

不说这是我要了解的唯一一件事,是的,我一定很想了解其中的区别。

两者之间有何主要区别?

非常感谢。

注意:我确实在SO中搜索了类似的问题,但是找不到我想要的东西。 抱歉。


问题答案:

所不同的是,当第二个被最小化时,参数名称将被最小化,而angular将不再能够检查参数以找出要注入的依赖项。字符串中具有依赖项的数组语法意味着它是缩小安全的。

有一个称为的库ng-annotate,它将第二个示例更改为第一个示例,以便代码再次可以安全地进行压缩。



 类似资料:
  • 问题内容: 我使用Angular组件(this的第一个示例)。当我在组件中绑定对象时,可以在模板中访问它,但不能在控制器中访问它。 js: 的HTML: 模板html(在这里有效): 错误: ReferenceError:未定义英雄 Plunker:https://plnkr.co/edit/U9CJLs6jgrlsZH6tUdr0 问题答案: 您将在上下文中获得价值 虽然以上行不通。因为它不会在

  • 问题内容: 我正在使用angularjs编写示例应用程序。我在chrome浏览器上遇到以下错误。 错误是 错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=not%20a%20function%2C%20got%20undefined 呈现为 参数“ ContactContr

  • 问题内容: 根据AngularJS的教程,控制器功能只是位于全局范围内。 http://docs.angularjs.org/tutorial/step_04 控制器功能本身是自动解析为封装范围还是驻留在全局范围内?我知道他们已经传递了对自己的$ scope的引用,但是看来函数本身只是位于全局范围内。显然,这可能会带来很多问题,而且我已经通过经验和教育学到了封装的方法。此外,如果它们确实存在于全球

  • 问题内容: 我正在使用angularjs编写示例应用程序。我在chrome浏览器上遇到以下错误。 错误是 错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=not%20a%20function%2C%20got%20undefined 呈现为 参数“ ContactContr

  • 控制器定义 ThinkCMF5的控制器完全按 TP5的控制器用法来,但 CMF 封装了几个重要控制器基类,为了更方便开发者,我们建议如果没有特殊需求,自己创建的控制器请最好继承一个基类控制器; 用于 WEB 项目的基类控制器有四个,分别是:BaseController,HomeBaseController,UserBaseController,AdminBaseController 继承关系 th

  • 控制器定义 ThinkCMF6.0的控制器完全按 TP6.0的控制器用法来,但 CMF 封装了几个重要控制器基类,为了更方便开发者,我们建议如果没有特殊需求,自己创建的控制器请最好继承一个基类控制器; 用于 WEB 项目的基类控制器有四个,分别是:BaseController,HomeBaseController,UserBaseController,AdminBaseController, Re