javascript - angularJS中controller传参问题
阿神
阿神 2017-04-10 16:54:27
[JavaScript讨论组]

我在改别人代码时,遇到下面一段:

这段代码传递给controller一个字符串"HomeCtrl"和一个数组

["$rootScope", "$http",""`,"thirdpartyService", function(a, b, ,,,,){}] 

那么这个function中的参数 a,b,c等,就对应着前面的 $rootScope $http么?
我在angular的api文档只找到这样的介绍,关于controller:

阿神
阿神

闭关修行中......

全部回复(3)
大家讲道理

这里是依赖注入的写法,因为参数名称是不能够随意更改的,但是我们会遇到要代码压缩的情况,这样参数的名称就会改变。所以ng就用这种写法来解决参数名称改变也不会影响程序运行的做法。

扩展阅读:

  • 理解JavaScript中的依赖注入

天蓬老师

这是压缩后的代码,确实是一一对应的

迷茫

对的,是一一对应的,在依赖注入时把参数取出来做了处理的
源码里有说明的demo,可以看一下


filter、controller、directive等等都和invokeLater有关
通过invokeLater可以返回一个闭包,当调用config,provider(即moduleInstance返回的那些api)调用时,实质上就是调用这个闭包,将其存入invokeQueue中。注意此处只是入队操作,并未执行。执行有个runinvokequeue方法,* invoke,通过annoate取出依赖注入,将依赖注入为参数调用函数体
建议了解一下angularjs的启动流程http://www.cnblogs.com/wuya16/p/3769032.html

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号