【AngularJS】controller的继承

谈到angularJS controller的继承,一般都会想到父子scope,对应的父子controller,才能做好继承。
实践中有这样的一个场景,有2套页面,页面组件,风格大部分都一样,不同的可能是绑定的数据等稍有不同,如果简单copy一下html模板,controll的js文件,也能达到完成任务的效果,但是坏处是一份代码写了2边,如果万一要调整代码,还要改写2份,那AngularJS有没有提供这种场景下的controller继承实现呢

有,那就是$controller 服务,参考 https://docs.angularjs.org/api/ng/service/$controller

这个东西本来是做单元测试的,例如如下代码:



实际项目中,如下这么用,更方便



看下接口定义:
$controller(constructor, locals);

第一个参数不难理解。
第二个,一般都这么写{$scope:$scope}。原因是,scope是html和controller之间的粘合剂,它和html强绑定,故而当想继承某个controller时,要把当前绑定的scope传入进去

猜你喜欢

转载自v7sky.iteye.com/blog/2335865