浅析Angular中的自定义结构型/属性型指令

angular指令分为三种,组件(带模板指令)、结构型指令(改变宿主文档结构)、属性型指令(改变宿主行为),下面主要介绍自定义结构型指令和自定义属性型指令。

浅析Angular中的自定义结构型/属性型指令

一、自定义结构型指令

一个元素上只能放一个结构型指令,结构型指令的书写形式为*指令名,*是一个语法糖,如下代码:

  

登录后复制

以下自定义一个结构型指令,当给指令输入superadmin和admin时,DOM节点显示,否则移除节点。【相关教程推荐:《angular教程》】

@Directive({  selector: '[appLogin]'})export class LoginDirective implements OnInit{  @Input('appLogin') user=""  constructor(private VCR: ViewContainerRef,private TPL: TemplateRef) {   //在指令的构造函数中将 TemplateRef 和 ViewContainerRef 注入成私有变量。  }  ngOnInit(){    if(this.user=='superadmin'||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]'})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"    }  }}

登录后复制

超级管理员
管理员
普通会员
**

登录后复制

效果:

在这里插入图片描述

更多编程相关知识,请访问:编程视频!!

以上就是浅析Angular中的自定义结构型/属性型指令的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2696723.html

(0)
上一篇 2025年3月7日 18:35:05
下一篇 2025年3月5日 19:02:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Angular学习之聊聊生命周期

    本篇文章带大家继续angular的学习,使用angular进行开发时,避免不了需要接触生命周期,下面就来带大家一起聊聊angular中的生命周期,希望对大家有所帮助! 接触过 react 和 vue 开发的读者应该对生命周期这个概念不陌生。…

    2025年3月7日 编程技术
    200
  • angular学习之深入聊聊状态和动画

    本篇文章带大家深入了解一下angular中的状态和动画,简单介绍一下创建动画的方法,并聊聊关键帧动画、动画回调、可重用动画、交错动画等知识点,希望对大家有所帮助! 状态 1、什么是状态 状态表示的是要进行运动的元素在运动的不同时期所呈现的样…

    2025年3月7日 编程技术
    200
  • Angular学习之ControlValueAccessor接口详解

    controlvalueaccessor 是什么?为什么需要使用 ?下面本篇文章就来带大家了解angular中的controlvalueaccessor组件接口,希望对大家有所帮助! ControlValueAccessor 是什么? 简单…

    2025年3月7日
    200
  • 构建你的第一个Angular应用:存储和访问数据

    在本系列的第一个教程中,我们学习了如何开始创建 Angular 应用程序。成功完成该教程后,您现在应该拥有第一个正常运行的 Angular 应用程序,其标题为“关于国家/地区的有趣事实”。在创建任何可以在屏幕上呈现的组件之前,我们将创建一些…

    2025年3月7日
    200
  • JS框架有哪些

    JS框架有哪些,需要具体代码示例 随着前端开发的发展,JavaScript(简称JS)框架成为了开发者不可或缺的工具。它们可以提供强大的功能,简化开发流程,并提高开发效率。本文将介绍几个常用的JS框架,并提供具体的代码示例供读者参考。 Re…

    2025年3月7日
    200
  • jQuery所需的依赖包有哪些?

    jQuery是一款非常受欢迎的JavaScript库,它能够简化DOM操作、事件处理、动画效果等操作。为了使用jQuery,我们需要在项目中引入相应的依赖包。下面将介绍一下jQuery引入所需的依赖包以及具体的代码示例。 首先,我们需要下载…

    2025年3月7日
    200
  • 浅谈Angular中如何添加和使用Font Awesome

    本篇文章给大家介绍一下什么是font awesome,以及angular项目中添加font awesome,使用font awesome图标库的方法,希望对大家有所助。 在这篇文章中,我们将研究如何在Angular应用程序中使用Font A…

    2025年3月7日
    200
  • 如何快速入门angular12?入门指南分享

    如何快速入门angular12?本篇文章就来介绍一下angular12,手把手教你快速入门angular12,有需要的可以参考~ 该文章主要面向对 angular感兴趣前端童鞋。在国内,大多企业使用的技术栈是vue、react,鲜有公司使用…

    2025年3月7日 编程技术
    200
  • 如何使用PHP和Angular进行前端开发

    随着互联网的飞速发展,前端开发技术也在不断改进和迭代。php和angular是两种广泛应用于前端开发的技术。php是一种服务器端脚本语言,可以处理表单、生成动态页面和管理访问权限等任务。而angular是一种javascript的框架,可以…

    编程技术 2025年3月7日
    200
  • 如何使用命令提示符在 Windows 11 或 10 上安装 Angular

    但是为什么要使用angular呢? 在我们深入研究安装过程之前,让我们快速了解使用 Angular 的一些好处,使其值得考虑用于 Web 开发。Angular为构建现代Web应用程序提供了一个强大的结构化框架。它以以下方面而闻名: 其基于组…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论