最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Angular 4根据组件名称动态创建出组件的方法教程

来源:懂视网 责编:小采 时间:2020-11-27 22:26:34
文档

Angular 4根据组件名称动态创建出组件的方法教程

Angular 4根据组件名称动态创建出组件的方法教程:一、理解angular组件 组件是一种特殊的指令,使用更简单的配置项来构建基于组件的应用程序架构,这样他能简单地写app,通过类似的web Component 或者angular2的样式。web Component 是一个规范。马上就要成为标准。 应用组件的优点: 比普通指令配置还简
推荐度:
导读Angular 4根据组件名称动态创建出组件的方法教程:一、理解angular组件 组件是一种特殊的指令,使用更简单的配置项来构建基于组件的应用程序架构,这样他能简单地写app,通过类似的web Component 或者angular2的样式。web Component 是一个规范。马上就要成为标准。 应用组件的优点: 比普通指令配置还简

一、理解angular组件

组件是一种特殊的指令,使用更简单的配置项来构建基于组件的应用程序架构,这样他能简单地写app,通过类似的web Component 或者angular2的样式。web Component 是一个规范。马上就要成为标准。

应用组件的优点:

  • 比普通指令配置还简单
  • 提供更好的默认设置和最好的实践
  • 对基于组建的应用架构更优化。
  • 对angular2的升级更平滑。
  • 不用组建的情况:

  • 对那些在 compile或者pre-link阶段要执行操作的指令,组件不能用,因为无法到达那个阶段。
  • 如果你想定义指令的 priority,terminal,multi-element,也不能用。
  • 组件只能通过元素标签触发,其他的只能用命令。
  • 二、动态创建组件

  • 说说场景先,比我写了一些组件,这此组件内容都很少,弹出的对话框也许只有一行数据,也有可能是一个表单等,或都一些多选的,单选的选项等。
  • 网上有好多,动态创建组件的Demo,都不是很满意,愿意就是要动态创建组件的时候,传入的你即将要创建的组件对象进去,然后把这个放到页面里显示出来。这算什么动态创建呀,我就想传一个组件的名字,然后就能把他创建出来。
  • 之前写过C#动态创建类,都是给一个类的名称,然后通过反射将类创建出来,然后能过接口过滤转成接口调用方法或, invoke 某个方法等进行操作。像这种才是我想要的效果。
  • 给个名称,然后就把这个组件创建出来,通过输入一些参数对创建出来的组件进行赋值,输出一些参数(主就输出是事件了,比较点击组件上的按钮触发相应的事件等)。
  • 说了这么多,先来个例子吧。


    上面那张图很简单就是一个输入文本的一个弹框。

    下面这个就有点复杂了,有数据传入,事件绑定等

    主了调用起来方便,我把这些都封装成了一个方法:三个参数

  • 要创建的组件名称
  • 要传入组件的参数
  • 组件输出的事件
  •  Utility.$ShowDialogComponent('ComponentName', {
     Params1,Params2...
     }, {
     onEventName1:()=>{},
     ...
     });

    由于我动态创建的组件都是以弹框形式出来,所以我把动态创建的步骤放到了,弹框组件里。

    创建Dialog.ts,文件,

    @Component({
     selector: 'xtn-mode-dialog',
     templateUrl: './Dialog.html',
     styleUrls: ['./Dialog.scss'],
     animations: [ // 弹框的添加一个动画效果,由小到大显示,关闭时候,由大小到最后不见了。
     trigger('TriggerState', [
     state('inactive', style({ transform: 'scale(0.1)' })),
     state('active', style({ transform: 'scale(1)' })),
     transition('inactive => active', animate('150ms ease-in')),
     transition('active => inactive', animate('150ms ease-out')),
     ])
     ]
    })
    export class XtnDialog implements OnInit, OnDestroy, OnChanges, AfterContentChecked, AfterContentInit {
     // 依赖注入动态创建组件的工厂类
     constructor(private resolver: ComponentFactoryResolver) {
     }
     // 内容检查,主要是判断是打开还是关闭弹框。
     ngAfterContentChecked(): void {}
     // 销毁操作
     ngOnDestroy(): void {}
     // 这里就是动态创建的组件地方法
     LoadComponent(self:any){}
     ngAfterContentInit(): void {}
     ....
    }

    就不把代码张贴里了,查看全部代码可以点击这里展示出几个方法吧,具体详情可能点击

    总结

    文档

    Angular 4根据组件名称动态创建出组件的方法教程

    Angular 4根据组件名称动态创建出组件的方法教程:一、理解angular组件 组件是一种特殊的指令,使用更简单的配置项来构建基于组件的应用程序架构,这样他能简单地写app,通过类似的web Component 或者angular2的样式。web Component 是一个规范。马上就要成为标准。 应用组件的优点: 比普通指令配置还简
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top