在网上看到很多都在讲,每个$scope都有对应controller,那么$rootscope的controller在哪里呢?是ng-app属性所在标签里的ng-controller,那么如果ng-app所在标签没有ng-controller,那么对应的controller又应该怎么表示?
伊谢尔伦2017-05-15 17:08:32
首先用某上海市长回复香港记者的一句话做回答:"没有听说过"
这个说法不够清楚,这个controller究竟指的是什么?如果是ngController这个指令的话,这句话就明显本末倒置。是ngController这个指令创建了一个新的scope。 如果是指指令中的controller函数,则明显更不对了,很多指令根本没有controller函数。
所以,此处你最好贴出持有这种观点的网址。。。
另外,ngApp对应根作用域即 $rootscope,本人可能学的比较浅,还不知道其对应的controller,还希望其他大神指正
仅有的幸福2017-05-15 17:08:32
我觉得这样理解比较容易:
控制器——controller 仅仅是一种封装……是AngularJS设计模式的一种定义,仅此而已。不存在什么对应关系。
我们通过ng-controller指令来创建一个控制器。
我们也可以通过$controller服务来创建一个控制器。
控制器通过AngularJS的另一个设计模式——依赖注入 来使用更多服务。比如$scope。而你完全可以不注入$scope……但为什么一定要使用$scope? 因为你可以将$scope理解为 页面与数据的高速通道,或者桥梁,或者连接,或者粘合剂…… 也就是 控制器中定义的所有东西,想要反应到页面上,就必须通过$scope
比如
controller:
$scope.text = "hello world!";
view:
{{ text }}
因此,不存在什么控制器和$scope作用域有对应关系。他俩没什么关系。就好像,你有两张纸,想做一个模型,你还需要胶水。你说纸和胶水有对应关系嘛?