Angular-04:指令

news2024/9/28 21:17:49

  • ① 内置指令
    • 1.1 *ngIf 结构指令
    • 1.2 [hidden] 属性指令
    • 1.3. *ngFor 结构指令
    • 1.4 *ngSwitch 结构指令
  • ② 自定义指令用法

  1. 指令是angular操作dom的途径,分为属性指令和结构指令。
  2. 属性指令:修改元素的外观或行为。使用 [ ] 包裹。
  3. 结构指令:增加、删除dom节点以修改布局,使用*作为指令前缀。
  4. 指令与模板关系密切,可以与DOM进行灵活交互,改变布局或者样式。
  5. 组件也是指令的一种,区别在于:组件带有单独的模板,一般指令作用于已有DOM元素上。
  • 此处列举的不完全,只是几个常用的

① 内置指令

1.1 *ngIf 结构指令

根据条件渲染DOM节点或者移出dom节点

<!--满足条件才渲染该节点-->

 <div *ngIf="data.length===0">暂无数据</div>

1.2 [hidden] 属性指令

根据条件显示Dom节点或隐藏dom节点(display)根据样式来控制元素显示

1.3. *ngFor 结构指令

遍历数据生成html结构。

范例:ngFor所有属性

   <p *ngFor="
			  let item of items;   // 数据遍历
		      let i = index;   // 当前索引值
		      let isEven = even;  // 当前是否是奇数行
			  let isOdd = odd;   // 当前是否是偶数行
	 	      let isFirst = first;  // 当前是否是第一行
		      let isLast = last;  // 当前是否是最后一行
		      trackBy:trackBy;  //优化数据渲染,提高性能。接收一个函数
	        ">
  </p>
 let i = index;  // index为ngFor内部提供的一个变量,这里声明一个变量i并赋值过来,就可以在页面上使用了。

1.4 *ngSwitch 结构指令

  1. 控制显示那个模板,类似js中的switch
  2. 语法:[ngSwitch]=“表达式” *ngSwitchCase=“条件值” *ngSwitchDefault----(在不满足任何条件时选择)

例:

<ul [ngSwitch]="status">
       <li *ngSwitchCase="1">周一</li>
       <li *ngSwitchCase="2">周二</li>
       <li *ngSwitchCase="3">周三</li>
       <li *ngSwitchCase="4">周四</li>
       <li *ngSwitchCase="5">周五</li>
       <li *ngSwitchDefault>加班</li>
</ul>
status: number = 1;

结果: status值为1,显示“周一”;(如果status为0,或不符合以上条件则显示:“加班”)

在这里插入图片描述


② 自定义指令用法

场景:为元素设置默认的背景颜色,鼠标移入时的背景颜色以及移出时的背景颜色。

举例:元素默认为深蓝色,鼠标移入时变成粉色,移出变成黄色

  • 用户可以设置自定义颜色,未设置颜色使用默认色深蓝色,自定义颜色使用了浅蓝色。

appBgColor指令

import { AfterViewInit, Directive, ElementRef, HostListener, Input } from '@angular/core';

// 接收参数的类型
interface Options {
  bgColor?: string;
}


@Directive({
  selector: '[appBgColor]'
})
export class BgColorDirective implements AfterViewInit {

  // 接收参数,没有传入值,默认为:#00aaff
  @Input("appBgColor") appBgColor: Options = {};

  //要操作的Dom节点
  element: HTMLElement;

  constructor(
    private el: ElementRef //获取要操作的Dom节点
  ) {
    this.element = this.el.nativeElement;
  }

  // 组件模板初始化完成后设置元素的背景颜色
  ngAfterViewInit(): void {
    this.element.style.backgroundColor = this.appBgColor.bgColor || "#00aaff";
  }

  // 为元素添加鼠标移入监听
  @HostListener('mouseenter') enter() {
    this.element.style.backgroundColor = 'pink';
  }

  // 为元素添加鼠标移出监听
  @HostListener('mouseleave') leave() {
    this.element.style.backgroundColor = 'yellow';
  }
}

1.使用指令默认颜色
未设置颜色,使用默认颜色

<div class="test" appBgColor>第一块</div>

2.使用自定义颜色

<div class="test" [appBgColor]="{bgColor:'skyblue'}">第二块</div>

效果图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1140462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

未来嵌入式在哪些方向会更火?

针对于嵌入式比较官方的定义为&#xff1a;嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。目前,随着全球物联网设备的大量使用和ChatGpt的出现,嵌入式系统市场目前呈现出一个…

商人宝:选择服装店收银系统源码需要注意的三个关键点

当选择服装店收银系统源码时&#xff0c;有几个关键点需要注意。首先&#xff0c;确保系统具备完备的功能&#xff0c;以满足日常运营的需求。其次&#xff0c;易用性和用户体验也是重要的考虑因素。最后&#xff0c;安全性和稳定性是不可忽视的要素。商人宝开源收银系统今天分…

小型洗衣机哪个牌子质量好?家用小洗衣机推荐

随着人们的生活水平的提升&#xff0c;越来越多小伙伴来开始追求更高的生活水平&#xff0c;一些智能化的小家电就被发明出来&#xff0c;而且小型洗衣机是其中一个。现在通过内衣裤感染到细菌真的是越来越多&#xff0c;所以我们对内衣裤的清洗频次会高于普通衣服&#xff0c;…

第27届亚洲国际动力传动与控制技术展览会盛大开幕,意大利国家展团闪耀回归

2023年10月24日&#xff0c;第27届亚洲国际动力传动与控制技术展览会&#xff08;PTC ASIA&#xff09;在上海新国际博览中心正式拉开帷幕。作为亚太地区动力传动行业的风向标&#xff0c;PTC ASIA致力于为来自世界各地的参展企业提供专业的采供、技术信息交互平台&#xff0c;…

社群内容:吸粉、活跃社群的关键

优质的内容对社群的活跃度究竟有多重要&#xff0c;我们不妨通过以下的场景一起来感受下&#xff1a; 社群 1&#xff1a;每天群里发的都是一些标题党&#xff0c;诸如“震惊&#xff01;&#xff0a;&#xff0a;石头开口说人话”等&#xff1b; 社群 2&#xff1a;每天群里发…

css属性clip-path的使用说明

前言 当ui设计上的图片、div等的形状不是长方形&#xff0c;而是多边形的时候&#xff0c;就可以借助clip-path这个css属性来实现。 clip-path CSS 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示&#xff0c;区域外的隐藏。【from: MDN】 clip-path可以理解为一把剪…

虹科干货 | HK-TrueNAS版本大揭秘!一文教您如何选择合适的TrueNAS软件

文章来源&#xff1a;虹科网络基础设施 阅读原文&#xff1a;https://mp.weixin.qq.com/s/Iv0zDDmiDgE9vEGlAZs-sg 1&#xff0e;导语 TrueNAS是虹科iXsystems 设计和开发的NAS 操作系统&#xff0c;提供许多功能&#xff0c;例如文件存储、虚拟机 (VM) 和媒体服务器。它基于…

21.9 Python 使用Selenium库

Selenium是一个自动化测试框架&#xff0c;主要用于Web应用程序的自动化测试。它可以模拟用户在浏览器中的操作&#xff0c;如打开网页、点击链接、填写表单等&#xff0c;并且可以在代码中实现条件判断、异常处理等功能。Selenium最初是用于测试Web应用程序的&#xff0c;但也…

SQL查询优化---子查询优化、排序分组优化、覆盖索引优化

1、子查询优化 1、尽量不要使用not in 或者 not exists 取所有不为掌门人的员工&#xff0c;按年龄分组 &#xff0c;每个年龄段多少人 SELECT SQL_NO_CACHE age,count(*) FROM emp a WHERE id NOT IN(SELECT ceo FROM dept b2 WHERE ceo IS NOT NULL)group by age having…

NFC读卡器ST25R3911B-AQWT、ST25R3917B-AQET、ST25R3919B-AQET产品描述、功能框图

一、ST25R3911B 1.4 W功耗可支持VHBR和AAT的高性能HF读卡器 / NFC发起设备 ST25R3911B 是高度集成的NFC发起设备 / HF读卡器IC&#xff0c;包括模拟前端&#xff08;analog front end&#xff0c;AFE&#xff09;和一个高度集成的数据帧系统&#xff0c;可用于ISO 18092&#…

房产网源码 房产中介小程序源码 房产门户网站源码

房产网源码 房产中介小程序源码 房产门户网站源码 功能介绍&#xff1a; 一、付费发布信息 支持付费发布、刷新、置顶房源信息&#xff1b;二、个人发布信息 支持个人和房产经纪人发布房源信息&#xff1b;三、新房楼盘模块 支持新房楼盘功能&#xff0c;后台添加…

数字调制与星座图

文章目录 数字调制什么是调制&#xff1f;为什么调制&#xff1f;数字调制幅移键控 (ASK)频移键控 (FSK)相移键控 (PSK)二相相移键控(BPSK)正交相移键控(QPSK)补充&#xff1a;什么是相位 星座图IQ调制与解调IQ调制IQ解调IQ调制与解调的原理与过程IQ调制的应用举例 正交幅度调制…

ICC2:分段长tree的流程

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 分段长tree操作起来方法很多,这里提供两种ICC2分段长tree的方法。有需要的可以试试。 1.用原始sdc长一遍tree,找得到要做subtree部分,并预估latency值。 2.把sdc中添加subtree clock,subtree是…

使用Intersection Observer API 检测元素是否出现在可视窗口

使用Intersection Observer API 检测元素是否出现在可视窗口 API解读&#xff1a; Intersection Observer API提供了一种异步检测目标元素与祖先元素或视口(可统称为根元素)相交情况变化的方法。 注意点&#xff1a;因为该 API 是异步的&#xff0c;它不会随着目标元素的滚动…

基于springboot实现校园交友网站管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校园交友网站管理系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生…

COSCon'23媒体和社区合作伙伴正式公布!百川相聚,潮汇大海,邀您天府之城共话开源!...

一年一度的开源盛会&#xff0c;COSCon23 第八届中国开源年会&#xff0c;将于10月28~29日&#xff0c;在四川成都市高新区菁蓉汇召开&#xff01;本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01; 如往年一样&#xff0c;作为中国最大的非营利…

独创变频杀毒(血影内核) 瑞星杀毒软件V16保驾护航

下载地址&#xff1a;https://user.qzone.qq.com/512526231/main

MySQL知识总结(内附超详细知识框架图)

MySQL知识总结 博友们&#xff0c;你们好&#xff01;博主最近对MySQL相关的知识进行了复盘&#xff0c;并通过思维导图的方式提取出了MySQL的核心知识点&#xff0c;现将复盘结果分享给大家&#xff0c;希望能够对大家学习MySQL有所帮助。 下面博主将MySQL各大模块的思维导图…

CDN是如何一步步壮大到现在这样的

当我们浏览网页、观看在线视频或下载文件时&#xff0c;CDN&#xff08;内容分发网络&#xff09;已经成为网络世界中不可或缺的一部分。本文将探讨CDN的发展历程&#xff0c;其工作原理&#xff0c;以及它如何利用不同地区来提供更快速、可靠的内容交付服务。 CDN的发展历程 过…

HTML5+CSS3+JS小实例:带密码灯照射的登录界面

实例:带密码灯照射的登录界面 技术栈:HTML+CSS+JS 字体图标库:Font Awesome 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name=&…