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

关于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.kler.cn/a/581609.html

相关文章:

  • linux makefile tutorial
  • Java 函数式编程:简化代码
  • Spring IoC:解耦与控制反转的艺术
  • hive 中各种参数
  • 大语言模型基础—语言模型的发展历程--task1
  • python的sql解析库-sqlparse
  • OpenCV 拆分、合并图像通道方法及复现
  • JAVA的权限修饰符
  • 前瞻技术新趋势:改变未来生活方式的技术探索
  • Flink测试环境Standalone模式部署实践
  • 关于Vue/React中Diffing算法以及key的作用
  • C/S架构与B/S架构
  • C++设计模式-观察者模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
  • 【算法】BFS(最短路径问题、拓扑排序)
  • ScanPy - Preprocessing and clustering 3k PBMCs (legacy workflow)工作复现
  • 【亲测有效】Mac系统升级或降级Node.js版本,Mac系统调整node.js版本
  • alibaba EasyExcel的使用说明
  • 基于Ollama平台部署的Qwen大模型实现聊天机器人
  • git规范提交之commitizen conventional-changelog-cli 安装
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(27)混元幡遮天机 - 第一个错误版本(二分边界)