文章页正文上
今天小编给大家分享一下Angular中如何自定义结构型指令和属性型指令的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 一、自定义结构型指令一个元素上只能放一个结构型指令,结构型指令的书写形式为*指令名,*是一个语法糖,如下代码:
以下自定义一个结构型指令,当给指令输入superadmin和admin时,DOM节点显示,否则移除节点。
@Directive({ selector:'[appLogin]' }) exportclassLoginDirectiveimplementsOnInit{ @Input('appLogin')user="" constructor(privateVCR:ViewContainerRef,privateTPL:TemplateRef){ //在指令的构造函数中将TemplateRef和ViewContainerRef注入成私有变量。 } ngOnInit(){ if(this.user=='superadmi免费云主机、域名n'||this.user=="admin"){ this.VCR.createEmbeddedView(this.TPL) }else{ this.VCR.clear() } } }
超级管理员管理员普通会员
效果:
二、自定义属性型指令使用属性型指令,可以更改 DOM 元素和 Angular 组件的外观或行为。1、从 @angular/core 导入 ElementRef。ElementRef 的 nativeElement 属性会提供对宿主 DOM 元素的直接访问权限。2、在指令的 constructor() 中添加 ElementRef 以注入对宿主 DOM 元素的引用,该元素就是 appColor 的作用目标。3、向 ColorDirective 类中添加逻辑,在不同输入条件下,背景分别展现为红、绿、蓝
@Directive({ selector:'[appColor]' }) exportclassColorDirectiveimplementsOnInit{ @Input()appColor="" constructor(privateele:ElementRef){ } ngOnInit(){ if(this.appColor=='superadmin'){ this.ele.nativeElement.style.backgroundColor="red" }elseif(this.appColor=='admin'){ this.ele.nativeElement.style.backgroundColor="green" }else{ this.ele.nativeElement.style.backgroundColor="blue" } } }
超级管理员管理员普通会员**
效果:以上就是“Angular中如何自定义结构型指令和属性型指令”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注云技术行业资讯频道。
本篇内容介绍了“jquery如何修改cookie中的一个键值对”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 创建一个 cookie在创建一个 cookie 之…
文章页内容下