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

为什么在AngularJS中定义控制器时不使用显式注释?

冯宏浚
2023-03-14
问题内容

我是AngularJS的新手,正在学习编写控制器函数的两种样式。似乎某人不使用显式注释的唯一原因是节省时间,这似乎不是一个好理由。能够最小化/混淆代码似乎是我想要保留在任何应用程序中的要求。

另请注意,我并不是在问哪个更好,也不是在辩论。我在问什么原因(或在什么情况下) 使用显式注释会更有利。

我正在谈论的示例

module('myApp').controller('MyController', function($scope) {});

module('myApp').controller('MyController', ['$scope', function($scope) {}]);

问题答案:

该直列排列注释是简单地在Java脚本限制的解决办法,使角码进行微细化以及不停止工作。但这不是一个很好的解决方案,因为如果强制您 重复
代码。我们都知道重复代码有多糟糕。Angular文档本身承认:

使用这种类型的注释时,请注意使注释数组与函数声明中的参数保持同步。

添加新的依赖关系而忘记添加相应的注释太容易了。或对参数重新排序而忘记更新注释列表。相信我。去过也做过。

幸运的是,有一些聪明人开发的工具,它们通过自动注释代码来减轻我们的负担。如@pankajparkar所提到的,可能最著名的是ng-
annotate
。您所要做的就是将其插入到构建过程中,您的代码将被正确注释。

老实说,我发现Angular文档建议不要采用这种方法确实很奇怪。



 类似资料:
  • 问题内容: 我在我的angular js项目中遇到了$ scope的麻烦。例如,当我在输入字段上使用ng-model =“ modelExample”时,我无法使用$ scope.modelExample在我的js中访问它。还有其他人有类似的问题吗? 这很奇怪,调用了一个函数,但是ng-model没有绑定。请参阅下面的代码,当我提交表单时,将调用refreshResults()函数,但$ scop

  • 我正试图实现第一个Zats测试,但由于缺少Spring依赖注入而陷入困境。 带有下面代码片段的测试变为绿色,但永远不会调用doAfterComment。似乎向zul页面中注入的控制器不起作用。将应用="${teamsPopupCtrl}"更改为完全限定的名称,控制器将被使用,但teamService为空,并且当从doAfterComment调用teamService.findAll()时,我得到了

  • 问题内容: 我一直在跟随一个教程,教科书向我保证这可以工作,但是 错误:[ng:areq]参数’SimpleController’不是一个函数,未定义 为什么?我掉毛了,在它上面上下移动,看不到问题。为什么出现未定义状态? 问题答案: 我的猜测是您使用的angular.js版本是更新的。 有一个重大变化,即: 默认情况下 , angular将不再寻找控制器。有关更多详细信息,请参见3f2232b5

  • 问题内容: 我正在使用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

  • [Original] The @Controller annotation indicates that a particular class serves the role of a controller. Spring does not require you to extend any controller base class or reference the Servlet API. H

  • 问题内容: 抱歉,这个问题听起来太明显了。 我最近开始探索和学习AngularJS。我已经看了一些不错的教程- 官方文件 w3cSchool 一些不错的网站 ..还有其他一些我见过的。 我并不是说我已经阅读/研究了所有文档。 问题从这里开始- 现在,提一个问题,我发现Controller的定义在一个地方是不同的,而在其他地方则是不同的- 一个定义使用一种数组表示法(不确定官方术语)进行注入: 就是