angular.js - $rootscope对应的controller在哪里?可以用什么方法获取到?
给我你的怀抱
给我你的怀抱 2017-05-15 17:06:32
0
2
664

在网上看到很多都在讲,每个$scope都有对应controller,那么$rootscope的controller在哪里呢?是ng-app属性所在标签里的ng-controller,那么如果ng-app所在标签没有ng-controller,那么对应的controller又应该怎么表示?

给我你的怀抱
给我你的怀抱

全部回复(2)
伊谢尔伦

首先用某上海市长回复香港记者的一句话做回答:"没有听说过"
这个说法不够清楚,这个controller究竟指的是什么?如果是ngController这个指令的话,这句话就明显本末倒置。是ngController这个指令创建了一个新的scope。 如果是指指令中的controller函数,则明显更不对了,很多指令根本没有controller函数。

所以,此处你最好贴出持有这种观点的网址。。。
另外,ngApp对应根作用域即 $rootscope,本人可能学的比较浅,还不知道其对应的controller,还希望其他大神指正

仅有的幸福

我觉得这样理解比较容易:
控制器——controller 仅仅是一种封装……是AngularJS设计模式的一种定义,仅此而已。不存在什么对应关系。

我们通过ng-controller指令来创建一个控制器。
我们也可以通过$controller服务来创建一个控制器。
控制器通过AngularJS的另一个设计模式——依赖注入 来使用更多服务。比如$scope。而你完全可以不注入$scope……但为什么一定要使用$scope? 因为你可以将$scope理解为 页面与数据的高速通道,或者桥梁,或者连接,或者粘合剂…… 也就是 控制器中定义的所有东西,想要反应到页面上,就必须通过$scope
比如

controller:
$scope.text = "hello world!";

view: 
{{ text }}

因此,不存在什么控制器和$scope作用域有对应关系。他俩没什么关系。就好像,你有两张纸,想做一个模型,你还需要胶水。你说纸和胶水有对应关系嘛?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板