angular 动态组件类型详解(四种组件类型)
组件类型1纯函数功能,而没有视图部分,即Factory(类似于$http)
promise.ponent.html
常见的有内置的$http,$q之类的。一般使用promise与作用域进行交互
组件类型2不是常驻于视图,而是动态插入的、有UI的一类组件,有输入交互、不常被调用(类似于Model对话框)
factory.ponent.html
并发性。这里收到es6的启发。在factory内使用了构造函数,来区分不同的实例。,factory接口返回的类型要根据需求来定仅仅是一个promise?还是返回一整个组件的实例
数据驱动。factory内部我使用了this.scope = $rootScope.$new()。并把每个实例的模板和作用域进行绑定$pile(html())(scope)。感谢毛总,这招真是方便。我们能够真正使用到angular的精髓用数据来驱动我们的视图了
交互。该demo因为需要与用户进行交互,返回了一个promise给调用者。实际要看情况。
作用域。由于该组件并不常常需要被调用,一旦组件'close'(从视图上消失),就scope.$destroy()、instance.remove()
组件类型3不常驻于视图,但会被经常调用,而且是动态插入的、无输入交互、有UI的一类组件(类似于popover)
factory.ponent2.html
对比。与上类型组件对比,该类组件更容易被调用(类似于微信右上角的popover)
并发性。要求更高,稍复杂。返回组件的实例,让开发者可用调用组件内部的方法(open/close/...)。,鉴于需求特殊性,在open()方法处我传入了$event作为UI参数
作用域。由于是隐藏地常驻与视图,只当路由切换时才注销实例。scope.$watch('$stateChangeSuess', function(){scope.destroy()})
组件实例。赋值给作用域的变量 $scope.instance = Mypop.init()
组件类型4实例之间存在某种关系、不常驻于视图,动态插入、只有视觉交互、有UI的一类组件(类似于ant design的Notification)
factory.ponent.3.html
对比。与上类组件对比,组件的每个实例之间需要存在某种队列关系,具体操作方法请参考上面的例子。
实例关系。如何维护实例之间的关系?笔者比较笨的方法是开启另一个factory实例,存放一个实例数据,来维护实例之间的关系var _sl = scope.list = []。然后该factory具备操作实例队列的一些方法 _sl.push(token)或者 _sl.shift()。每个实例都会监听这个实例队列 _s.$watchCollection('instanceList', function(){...})
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程