搜索

首页  >  问答  >  正文

angular.js - $rootscope对应的controller在哪里?可以用什么方法获取到?

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

给我你的怀抱给我你的怀抱2744 天前667

全部回复(2)我来回复

  • 伊谢尔伦

    伊谢尔伦2017-05-15 17:08:32

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

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

    回复
    0
  • 仅有的幸福

    仅有的幸福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作用域有对应关系。他俩没什么关系。就好像,你有两张纸,想做一个模型,你还需要胶水。你说纸和胶水有对应关系嘛?

    回复
    0
  • 取消回复