当前位置: 首页 > news >正文

关于ngx-datatable no data empty message自定义模板解决方案

背景:由于ngx-dataable插件默认没有数据时显示的文案是no data to display,且没有任何样式。这里希望通过自定义模板来实现。但目前github中有一个案例是通过设置代码:

https://swimlane.github.io/ngx-datatable/empty**

      <ngx-datatable
        class="material"
        [rows]="[]"
        [columns]="columns"
        [columnMode]="ColumnMode.force"
        [headerHeight]="50"
        [footerHeight]="50"
      >
        <div empty-content style="text-align: center;"
          >My custom empty component<br />uses two lines.</div
        >
      </ngx-datatable>

我尝试了下,没有效果估计是要angular17+以上吧,而我目前对于升级angular不太被支持,因此有了以下成功的解决方案,即嵌入一个自定义模板:

当前版本:angular16+ts+“@swimlane/ngx-datatable”: “^20.1.0”

html

          <ngx-datatable
          ......
            [messages]="messages"
            >
            </ngx-datatable>

ts

  messages = {
    emptyMessage: `
    <div id="ngxEmptyMessage" class="ngxEmptyMessage">
      <img class="emptyImg" src="./assets/icons/icon_frame.png">
      <span class="emptyMessage">No results</span>
    </div>
  `
  }

sass/css

::ng-deep .ngxEmptyMessage
  display: flex
  flex-direction: column
  justify-content: center
  align-items: center
  .emptyMessage
    color: #999
    font-size: 14px
    line-height: 22px
    margin-top: 8px
  .emptyImg
    width: 42px
    height: 42px
::ng-deep .ngx-datatable.material .empty-row
  height: auto
  padding: 130px 0

效果如图:

在这里插入图片描述

如果要给文案加上国际化,比如{{‘common.no-data’|translate}},是不可行的,解决方式如下:

只贴基于上面修改到的代码:核心就是改成${this.translate.instant(‘common.no-data’)},然后添加监控,实时获取国际化

import {TranslateService} from "@ngx-translate/core";
  messages = {
      emptyMessage: `
        <div id="ngxEmptyMessage" class="ngxEmptyMessage">
          <img class="emptyImg" src="./assets/icons/icon_frame.png">
          <span class="emptyMessage">${this.translate.instant('common.no-data')}</span>
        </div>
  `};
  constructor(private translate: TranslateService  ) {
  }
  ngOnInit(): void {
      this.translate.onLangChange.subscribe(() => {
        this.updateEmptyMessage();
      });
  }
  updateEmptyMessage() {
    this.translate.get('common.no-data').subscribe((translation: string) => {
      this.messages = {
        emptyMessage: `
          <div id="ngxEmptyMessage" class="ngxEmptyMessage">
            <img class="emptyImg" src="./assets/icons/icon_frame.png">
            <span class="emptyMessage">${this.translate.instant('common.no-data')}</span>
          </div>
        `
      };
    });
  }
http://www.dtcms.com/a/62007.html

相关文章:

  • 在虚拟机VMware上安装CENTOS7-图文教程
  • 【iOS逆向与安全】sms短信转发插件与上传服务器开发
  • 解锁 Postman:下载安装与账户注册使用的全攻略,踏上测试新征程
  • 项目管理系统在制造企业 IPD 研发管理中的应用实践
  • 硬件电路 - 推挽(PP)输出与开漏(OD)输出的区别
  • ViM-UNet模型详解及代码复现
  • 如和实现一个服务器端高并发线程池
  • 【C++】滑动窗口算法
  • Kubernetes服务部署 —— Kafka
  • 安卓Android与iOS设备管理对比:企业选择指南
  • SVN 拉取,文件冲突 解决办法
  • ClickHouse 数据倾斜实战:案例分析与优化技巧
  • 基于 Simulink 的超级储能参与电网一次调频仿真研究
  • uniapp+Vue3 组件之间的传值方法
  • simpleGRPO实现分享)
  • p标签中嵌套ul
  • 产品经理的大语言模型课 03 - 定制自己的大语言模型
  • Qt 驾校考试系统项目实现
  • AWS容器化部署指南
  • 【C++】特殊类设计
  • 【CXX】6.4 CxxString — std::string
  • 第十七:go 反射
  • Spring Boot中@Valid 与 @Validated 注解的详解
  • macOS 终端优化
  • 使用DeepSeek+蓝耘快速设计网页简易版《我的世界》小游戏
  • 从0到1:JavaScript小白进阶之路
  • mapbox-gl的Popup的使用详解
  • 旋转位置编码(3)
  • HarmonyOS
  • Spring Boot 项目中使用责任链模式实现复杂接口解耦和动态编排(带示例)