日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Angular组件--动态组件

發(fā)布時間:2025/3/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Angular组件--动态组件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

動態(tài)創(chuàng)建組件的應(yīng)用場景很多,比如動態(tài)廣告、像瀏覽器一樣動態(tài)打開多個頁面等等等等

要動態(tài)創(chuàng)建組件主要需要用到angular中的ComponentFactoryResolver、ComponentFactory、ViewContainerRef、?ComponentRef這幾個類

class ComponentFactoryResolver {static NULL: ComponentFactoryResolverresolveComponentFactory<T>(component: Type<T>): ComponentFactory<T> } class ViewContainerRef {get element(): ElementRefget injector(): Injectorget parentInjector(): Injectorclear(): voidget(index: number): ViewRef|nullget length(): numbercreateEmbeddedView<C>(templateRef: TemplateRef<C>, context?: C, index?: number): EmbeddedViewRef<C>createComponent<C>(componentFactory: ComponentFactory<C>, index?: number, injector?: Injector, projectableNodes?: any[][], ngModule?: NgModuleRef<any>): ComponentRef<C>insert(viewRef: ViewRef, index?: number): ViewRefmove(viewRef: ViewRef, currentIndex: number): ViewRefindexOf(viewRef: ViewRef): numberremove(index?: number): voiddetach(index?: number): ViewRef|null } class ComponentRef<C> {get location(): ElementRefget injector(): Injectorget instance(): Cget hostView(): ViewRefget changeDetectorRef(): ChangeDetectorRefget componentType(): Type<any>destroy(): voidonDestroy(callback: Function): void }

假設(shè)我們要在組件A中動態(tài)創(chuàng)建組件B,那么我們一般會這樣做:

1、在組件A中設(shè)置一個<ng-template>,并在組件類中獲取它。

2、在組件A中導(dǎo)入組件B,導(dǎo)入上面說的那幾個類

3、在組件A中動態(tài)創(chuàng)建組件B的方法里使用ComponentFactoryResolver的resolveComponentFactory方法解析組件B獲得組件B的ComponentFactory,balabalabala...具體如下

4、在所在模塊中導(dǎo)入entryComponents: [BComponent]

@NgModule({...declarations: [...,BComponent],entryComponents: [BComponent] }) import { Component, OnInit, ViewChild, ComponentRef, ComponentFactory,ComponentFactoryResolver, ViewContainerRef } from '@angular/core';import { BComponent } from '../b/b.component';@Component({selector: 'app-article',template: `<ng-template #RefB></ng-template><button (click)="createComponent()">create</button> ` }) export class ArticleComponent implements OnInit {@ViewChild('RefB', { read: ViewContainerRef }) container: ViewContainerRef;constructor(private componentFactoryResolver: ComponentFactoryResolver) { }ngOnInit() {}createComponent() {const componentFactory: ComponentFactory<BComponent> = this.componentFactoryResolver.resolveComponentFactory(BComponent);const componentRef: ComponentRef<BComponent> = this.container.createComponent(componentFactory);}}

至此我們完成了對組件B的基本動態(tài)創(chuàng)建方法,我們還可以通過componentRef的instance方法來訪問組件B中的屬性和方法;

但是當(dāng)我們不僅僅是希望能動態(tài)創(chuàng)建,同時還想要能讓動態(tài)創(chuàng)建出的組件B能和組件A進行通訊,就需要使用@Input、@Output。這與平時我們所使用的過程有一點區(qū)別,因為動態(tài)創(chuàng)建出的組件無法綁定屬性,則需要在父組件A通過訂閱才能實現(xiàn)通訊。

//input componentRef.instance.type = type; //output componentRef.instance.output.subscribe(event => console.log(event));

以前做過一個很復(fù)雜的的動態(tài)創(chuàng)建的組件交互中的Input需要使用Subject訂閱才能實現(xiàn)的,記不清楚了具體是什么場景了,用來作甚么的了

轉(zhuǎn)載于:https://my.oschina.net/u/3412211/blog/1550642

總結(jié)

以上是生活随笔為你收集整理的Angular组件--动态组件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲男人在线天堂 | 亚洲好骚综合 | 视频黄页在线观看 | 办公室大战高跟丝袜秘书经理ol | 国产综合一区二区 | 91精品国产综合久久久久 | 精品人妻少妇AV无码专区 | 欧美一级录像 | av在线a | 7m精品福利视频导航 | www.黄色片网站 | 国产久操视频 | 男女性高潮免费网站 | 国内国产精品天干天干 | 麻豆一区二区三区四区 | 精产国品一区二区 | 69福利视频 | 亚洲精品综合精品自拍 | 中文字幕av一区二区三区谷原希美 | 午夜天堂av | 亚洲精品久久久久久动漫器材一区 | 国产国语性生话播放 | 成人午夜免费观看 | 欧美色哟哟 | 男人的天堂成人 | 久久r视频| 中文字幕乱伦视频 | 日韩一级完整毛片 | 爱情岛亚洲首页论坛 | 国产精品福利一区二区三区 | 美乳人妻一区二区三区 | 国产福利在线免费观看 | 成年人性生活免费视频 | 日韩三级欧美 | 久久久久亚洲av片无码 | av黄色片 | 丰满人妻一区二区三区53视频 | 在线视频一区二区三区四区 | 有机z中国电影免费观看 | 先锋影音色 | 麻豆网站在线 | 一级免费观看视频 | 美女又爽又黄免费 | 91色啪 | 欧美一区二区最爽乱淫视频免费看 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | 一级黄色片网址 | 成人在线亚洲 | 2018天天弄 | 91中文字幕网 | 操操操插插插 | 72成人网| 国产肥老妇视频 | 日韩精品小视频 | 久久免费一区 | 春色激情站 | 黄色性网站 | 日本乳汁视频 | 91精品啪在线观看国产线免费 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 乱一色一乱一性一视频 | 依人成人 | 国产自产自拍 | 亚洲精品9999 | 在线观看国产亚洲 | 黄色麻豆视频 | 中国女人一级片 | 国产中文字幕第一页 | 亚洲永久免费精品 | 成色视频 | 国产av人人夜夜澡人人爽麻豆 | 日韩一区二区久久 | 久久欧 | av成人资源 | 爱情岛论坛永久入口 | 亚洲精品久久久久久久久久 | 国产精品无码久久久久一区二区 | 能免费看黄色的网站 | 午夜桃色 | av免费观看网址 | 国产sm调教视频 | www噜噜噜 | 有码在线播放 | 一区二区在线视频 | 18禁一区二区 | 自拍偷拍日韩精品 | 日韩性生交大片免费看 | 中文人妻av久久人妻18 | 91精品国产综合久久久蜜臀九色 | 亚洲成人av电影网站 | 日韩中文字幕在线看 | 欧美 国产 综合 | 一本色道久久综合亚洲精品按摩 | 国产免费a级片 | 精品无码av在线 | 人人揉人人 | 久久深夜福利 | 男女猛烈无遮挡免费视频 | 日韩资源 |