简要分析angular的$controller服务

大家一般用angular的$controller的时候都是用如下的方式:

angular.module('app',[])
  .controller('appController',function{})

这样的方式是让angular自动去寻找程序的入口ng-app,然后自动解析依赖注入,并且声成实例。
其实在angular内部执行过程如下

//使用注射器加载应用
var injector=angular.injector(['ng','app']);
//通过注入器加载$controller服务
var $controller=injector.get('$controller');
var scope=injector.get('$rootScope').$new();
//加载控制器并传入一个作用域,同angular在运行时的一样
 var myController=$controller('appController',{$scope:scope})

这种是通过显式的注入声明了依赖关系。

从代码中可以看出,如果要单独应用$controller这个服务的情况下,这种情况比较少,不如需要在服务函数的参数中动态的传入控制器的名字的时候,需要使用$controller,使用的方法就是通过依赖注入取得这个$controller然后传入,需要执行的控制器名称和对应的作用域。<p>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AngularJS是什么?AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是...
    200813阅读 5,564评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,589评论 19 139
  • 三道金龙光柱冲天而起,照耀百里,而这片天地间,各方人马都是面目呆滞的望着天空中的光柱,双目之中,满是震撼之色。 金...
    混沌天书阅读 4,748评论 0 1
  • 今天真的很生气,委屈,难过~因为千古难题-婆媳关系 女儿咳嗽断断续续一个月了还没好,我婆婆一如既往的在幼儿园微信群...
    莉丽安阅读 1,833评论 1 0
  • 美貌虽是短暂的,经她们演绎的时尚却是永恒的,你可能记不住她们的名字,却不能否认她们开创的时尚经典。 玛丽莲?梦露M...
    时尚雅慧阅读 3,047评论 0 0