欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          淺析Angular中的自定義結(jié)構(gòu)型/屬性型指令

          Angular指令分為三種,組件(帶模板指令)、結(jié)構(gòu)型指令(改變宿主文檔結(jié)構(gòu))、屬性型指令(改變宿主行為),下面主要介紹自定義結(jié)構(gòu)型指令和自定義屬性型指令。

          淺析Angular中的自定義結(jié)構(gòu)型/屬性型指令

          一、自定義結(jié)構(gòu)型指令

          一個元素上只能放一個結(jié)構(gòu)型指令,結(jié)構(gòu)型指令的書寫形式為*指令名,*是一個語法糖,如下代碼:

          <div *ngIf=""></div> <!-- 等價于 --> <ng-template [ngIf]="">   <div></div> </ng-template>
          登錄后復(fù)制

          以下自定義一個結(jié)構(gòu)型指令,當給指令輸入superadmin和admin時,DOM節(jié)點顯示,否則移除節(jié)點?!鞠嚓P(guān)教程推薦:《angular教程》】

          @Directive({   selector: '[appLogin]' }) export class LoginDirective implements OnInit{   @Input('appLogin') user=""   constructor(private VCR: ViewContainerRef,private TPL: TemplateRef<any>) {    //在指令的構(gòu)造函數(shù)中將 TemplateRef 和 ViewContainerRef 注入成私有變量。   }   ngOnInit(){     if(this.user=='superadmin'||this.user=="admin"){       this.VCR.createEmbeddedView(this.TPL)     }else{       this.VCR.clear()     }   } }
          登錄后復(fù)制

          <div *appLogin="'superadmin'">超級管理員</div> <div *appLogin="'admin'">管理員</div> <div *appLogin="'user'">普通會員</div>
          登錄后復(fù)制

          效果:
          淺析Angular中的自定義結(jié)構(gòu)型/屬性型指令
          二、自定義屬性型指令

          使用屬性型指令,可以更改 DOM 元素和 Angular 組件的外觀或行為。

          1、從 @angular/core 導(dǎo)入 ElementRef。ElementRef 的 nativeElement 屬性會提供對宿主 DOM 元素的直接訪問權(quán)限。

          2、在指令的 constructor() 中添加 ElementRef 以注入對宿主 DOM 元素的引用,該元素就是 appColor 的作用目標。

          3、向 ColorDirective 類中添加邏輯,在不同輸入條件下,背景分別展現(xiàn)為紅、綠、藍

          @Directive({   selector: '[appColor]' }) export class ColorDirective implements OnInit{   @Input() appColor=""   constructor(private ele:ElementRef) {         }   ngOnInit(){     if (this.appColor == 'superadmin'){       this.ele.nativeElement.style.backgroundColor="red"     } else if (this.appColor == 'admin') {       this.ele.nativeElement.style.backgroundColor = "green"     }else{       this.ele.nativeElement.style.backgroundColor = "blue"     }   } }
          登錄后復(fù)制

          <div [appColor]="'superadmin'">超級管理員</div> <div [appColor]="'admin'">管理員</div> <div [appColor]="'user'">普通會員</div>**
          登錄后復(fù)制

          效果:

          淺析Angular中的自定義結(jié)構(gòu)型/屬性型指令

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號