内置属性型指令

NgClass —— 添加和删除一组 CSS 类。

NgStyle —— 添加和删除一组 HTML 样式。

NgModel —— 将数据双向绑定添加到 HTML 表单元素。

内置结构型指令

NgIf —— 从模板中创建或销毁子视图。

NgFor —— 为列表中的每个条目重复渲染一个节点。

NgSwitch —— 一组在备用视图之间切换的指令。

要在特定条件为 true 时复写 HTML 块,请将 *ngIf 放在 *ngFor 元素的容器元素上。它们之一或两者都可以是
,这样你就不必引入额外的 HTML 层次了。

属性型指令

clickout.directive.ts

import { Directive, Input, EventEmitter, Output, ElementRef, HostListener, Renderer2, OnDestroy } from '@angular/core'
@Directive({selector: '[appClickout]'
})
export class ClickoutDirective implements OnDestroy {@Input('appClickout') targetDom: ElementRef@Output() showEvent = new EventEmitter()clickEventconstructor(el: ElementRef, render: Renderer2) {this.clickEvent = render.listen('document', 'click', (evt) => {if (!this.targetDom) {return}if (el.nativeElement.contains(evt.target) ||(this.targetDom && this.targetDom.nativeElement.contains(evt.target) ||(evt.target.nodeName === 'svg' || evt.target.nodeName === 'rect' || evt.target.nodeName === 'polygon')) ||(evt.target.offsetParent && evt.target.offsetParent.className.indexOf('cdk-overlay-container') >= 0)) {evt.stopPropagation()evt.preventDefault()return false} else {this.showEvent.emit(false)}})}ngOnDestroy() {if (this.clickEvent) {this.clickEvent();}}
}

引入

@NgModule ....
declarations:[ClickoutDirective ]

应用

<div class="editState" #orderStatus appClickout [appClickout]="orderStatusInit" (showEvent)="editShow('editState')">
@ViewChild('orderStatus', { static: false }) orderStatus: ElementRef;ngAfterViewInit(): void {this.orderStatusInit = this.orderStatus;}editShow(event) {switch (event) {case 'editState':this.editState = false;break;case 'editLeavel':this.editLeavel = false;break;}}

angular- Directive相关推荐

  1. 利用 Angular Directive 和 @HostBinding 实现输入文本框随着键盘输入自动变色效果

    假设有这样一个需求:我们需要增强 HTML 里原生的 input 标签,让其达到,随着用户输入字符时,其颜色自动切换的效果. 这是一个典型的可以使用 Angular Directive 实现的需求. ...

  2. 关于Angular directive使用的语法问题

    Angular Directive 分为两大类:structural 指令和 attribute 指令. 前者用于控制或者改变 DOM,后者控制已有 elements 的外观或者行为. 源代码: im ...

  3. Angular Directive 详解

    Angular Directive 学习 学习目的:为了更好的了解 ng directive 的使用方法. Directive可能是AngularJS中比较复杂的一个东西了.一般我们将其理解成指令.A ...

  4. angular directive 深入理解

    由于业务的需要,最近angular 的diretive 研究的比较多,有和同事一起共同协作开发scada的项目, 对directive 有了进一步更深的理解. 感觉才开始真正理解了这句话的意思: In ...

  5. 一个关于Angular Directive selector里的中括号使用问题

    其实对于Angular指令的selector,我一直搞得不是太清楚,看下面的例子:selector的定义里,包含了中括号. 在消费该Directive的HTML页面里,不用中括号: 则Directiv ...

  6. 每个施加在HTML元素上的Angular Directive,运行时都会生成一个新的实例

    每个施加在HTML元素上的Directive,运行时都会生成一个新的实例. 这些实例的ngOnInit hook执行完毕之后,再统一支持ngAfterViewInit: 上图这个focus-lock ...

  7. angular directive自定义指令

    先来看一下自定义指令的写法 app.directive('', ['', function(){// Runs during compilereturn {// name: '',// priorit ...

  8. 使用 angular directive 和 json 数据的 D3 带标签 donut chart示例

    利用angular resource加载priorityData.json中的json数据,结合D3画出甜甜圈图.运行index.html结果如图所示: priorityData.json中json数 ...

  9. fragment in UI5 Smart Template and directive in Angular

    在Jerry看来UI5里的fragment提供的功能是Angular directive里的一个子集,即layout的重用. UI5 fragment See Jerry's blog My unde ...

  10. ANGULAR自带指令有哪些?

    1.背景介绍 AngularJS 通过被称为 指令 的新属性来扩展 HTML. AngularJS 通过内置的指令来为应用添加功能. AngularJS 允许你自定义指令. 2.知识剖析 angula ...

最新文章

  1. telnet检查接收邮件命令
  2. 删库不跑路,MySQL 数据库恢复教程
  3. 修改linq结果集_UTXO集优化
  4. jdk 1.8 jdk8_JDK 8功能的可疑方面
  5. linux重启鼠标键盘服务,Linux 关闭服务后 鼠标 键盘用不了
  6. putty自动登录设置
  7. lptv自建服务器,如何搭建自己的IPTV平台
  8. activiti学习笔记---常见异常
  9. 图神经网络(GNN)模型原理及应用综述
  10. 安装jdk配置环境变量JAVA_HOME不起作用
  11. JAVA日志框架概述
  12. python 详解re模块
  13. 计算机安全中心无法启动,win10无法启动安全中心服务的解决方法
  14. 校园网认证破解教程(某数字科技学院)
  15. word封面背景及水印背景
  16. oracle 统计每天新增订单数量
  17. java登录界面圆形头像_Bootstrap实现圆角、圆形头像和响应式图片
  18. 如何零基础学习法语,陈家桥法语零基础入门学习
  19. Open Policy Agent(OPA) rego使用
  20. oracle之归档日志空间管理

热门文章

  1. python计算成绩差_关于使用Python——写成绩计算
  2. 初识Web与HTML
  3. 基于C的VAD实现一
  4. 成都可以打狂犬疫苗的地方
  5. ENVI处理高分一号PMS影像数据
  6. Android网上购物商城测试,Android 应用上架小米商城Monkey 测试不通过
  7. 图片加载之前显示 加载中或者加载中图片
  8. oracle 数据泵导出时间,Oracle DMP备份文件使用数据泵expdp/impdp导出导入dmp文件
  9. Mac IDEA 自带Maven换国内源
  10. 210 Ruby 方法、类和模块【Rails后端开发训练营】