通过指令快速实现元素“空状态”

本文介绍了如何在Angular中利用Directive来自动控制空状态组件的显示隐藏,避免手动添加额外的元素。通过判断父元素传入的参数,指令能够修改DOM内容,实现空状态的智能显示。使用时只需在元素上添加指令并传入数据,但要注意当有额外元素时,可能需要配合if或hidden指令来隐藏它们。
摘要由CSDN通过智能技术生成

类似管理系统之类的页面中,经常会用到没有数据时显示对应的空状态,常规的做法是在数据块之后添加空状态元素并使用if或者绑定hidden样式实现。在开发中也可以通过指令实现自动控制空状态组件的显示隐藏,不必在每处手动添加额外的元素。本文以Angular框架为例。

 一、新建Directive模块

Directive能够更改DOM元素或组件的外观和行为,通过判断父元素传入的参数,在指令中修改父元素的DOM内容即能完成空状态的自动显示隐藏

// ElementRef注入绑定该指令的元素,Input获取组件传入的参数
import { Directive, ElementRef, Input } from "@angular/core";

@Directive({
  selector: "[empty]", // 指令名称
})
export class EmptyDirective {
  // 创建空状态节点
  node = document.createElement("div");
  // 传入的空状态提示信息
  @Input() emptyInfo = "";
  // 传入的需要校验的值--变化时触发样式修改
  @Input()
  set emptyData(data: any[]) {
    if (!data.length && !this.el.nativeElement.contains(this.node)) {
      // 源父组件中没有子元素且不含空元素组件时->添加空元素组件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值