使用 ngFor 函数时,Angular Material matToolTip 不显示

2024-06-23

我有一组称为报告的数据,其中包含一组网络(report.networks)。在返回网络数组之前,我有 model.ts 来操作它。我做了一个 ngFor 来迭代网络数据以显示工作正常的详细信息。但是,在 ngFor 中添加 matToolTips 不会显示。

组件.html

<span matTooltip="Tooltip Works">Tooltip Works</span>

<div *ngFor="let network of report.networks">
   <span matTooltip="Tooltip Does NOT work!">Tooltip Does NOT work</span>
</div>

组件.ts

import { Report } from './../../core/models/report/report.model';

@Component({
    selector: 'app-report-detail',
    templateUrl: './report-detail.component.html',
    styleUrls: ['./report-detail.component.scss']
})
export class ReportDetailComponent implements OnInit {

    report: Report;

    constructor(private route: ActivatedRoute) { }

    ngOnInit() {

        this.report = this.route.snapshot.data.report;
        console.log(this.report);

    }

}

报告.model.ts

export class Report {

    networks?: any = null;

    constructor(data?: Report) {
        if (data) {
            this.deserialize(data);
        }
    }

    private deserialize(data: Report) {

        const keys = Object.keys(this);

        for (const key of keys) {
            if (data.hasOwnProperty(key)) {
                this[key] = data[key];
            }
        }
    }

    get networks() {

        let n = this.networks;
        //some manipulation
        return n
    }
}

正如这里提到的https://github.com/angular/material2/issues/10039 https://github.com/angular/material2/issues/10039

在 ngFor 中使用函数时,该数组会被一遍又一遍地创建实例,这会导致多个问题,例如 matToolTip 不显示以及性能问题。

我解决这个问题的另一种方法是更改​​我的 model.ts 文件。所以下面我将一个变量分配给函数的结果。然后我在 ngFor 中使用这个变量而不是直接在函数中使用。

export class Report {

    networks?: any = null;

    //custom

    customNetworks? : any = null;

    constructor(data?: Report) {
        if (data) {
            this.deserialize(data);

            this.customNetworks = this.generateNetworks()
        }

    }

    private deserialize(data: Report) {

        const keys = Object.keys(this);

        for (const key of keys) {
            if (data.hasOwnProperty(key)) {
                this[key] = data[key];
            }
        }
    }

    generateNetworks() {

        let n = this.networks;
        //some manipulation
        return n
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ngFor 函数时,Angular Material matToolTip 不显示 的相关文章

随机推荐

  • 如何使用 API 访问 Google 搜索“手气不错”功能?

    我正在创建一个示例应用程序 它将接受用户的查询 并返回从 Google 的 手气不错 搜索返回的 URL 结果 Google 是否通过其 API 公开此功能 如何访问这个 谷歌似乎改变了他们的I m feeling lucky url 解决
  • SQL数据库数据排序

    我能够获取名字和姓氏的组合长度以及按 ID 排序 但我无法按字典顺序对其进行排序 SELECT CUSTOMER ID CUSTOMER FIRST NAME CUSTOMER LAST NAME FROM CUSTOMER WHERE L
  • 递归指数法

    public static int exponent int baseNum int temp baseNum baseNum return temp exponent baseNum 现在 如果我调试它 上面的方法会 n n 变成无穷大
  • 为什么 Spring Boot Web 应用程序启动后立即关闭?

    使用STS 如果我导入 Rest Service 使用最新的 Spring Boot 开始项目并选择 Run As Spring Boot App 它启动 然后立即关闭 查看调试日志 Spring 由于某种原因决定该项目不是 Web 应用程
  • 将 lptstr 转换为 char*

    有人知道如何转换类型吗LPTSTR to char in C 取决于它是否显示为 Unicode 如果不是 Unicode LPTSTR 是 char 如果是 则 LPTSTR 是 w char 这里讨论得更好 http social ms
  • 在网格视图中动态添加网格项

    如何在网格视图中动态添加网格项 目前 我有一个包含我的图像的适配器 我想从 URL 获取图像并将它们动态添加到我的网格视图中 为网格视图创建自定义适配器 并为网格视图设置自定义适配器 这是网格项的 xml 代码
  • 无法从操作触发事件

    我正在设置 Spring 状态机事务 我想在 Event1 完成后启动 Event2 这些是我所拥有的状态 状态 gt 初始 第二 第三 我已将事务配置为从 FIRST EVENT 的操作发送 SECOND EVENT 如下所示 trans
  • 在 Highcharts 中对堆叠条形图进行分组

    我遇到的情况是 我需要将某些条形 列分组为逻辑分组以满足业务需求 我不在乎它是堆积条还是堆积柱 但我需要将某些堆栈分组在一起 各个堆栈仍然需要标记 Highcharts 是我当前的目标 但如果无法实现 我将考虑另一个库的想法 我对通过 pl
  • 在 Visual Studio Code 终端中打开 CMD

    每当我在 Visual Studio Code 中打开终端时 我都会得到一个 bash shell 我想添加 CMD 作为第二个 shell 为此 我浏览了 VS Code 文档并找到了以下命令 CTRL SHIFT 但它只打开第二个 ba
  • 如何在GDB中访问std::tr1::shared_ptr的目标

    如何访问 GDB 中 std tr1 shared ptr 的目标 这不起作用 gdb p sharedPtr gt variableOfTarget 如果我尝试使用指针对象本身 p sharedPtr 我得到这样的东西 1 std tr1
  • 模型视图演示者 - 被动视图 - 谁加载模型?

    我很好奇使用 MVP 模式来提高可测试性 我有 MVC 经验 但 MVP 似乎有所不同 我有一个在 项目 文件上运行的应用程序 该文件实际上是多个文件和文件夹的压缩存档 这个项目应该是我的模型 我将把加载模型的代码放在哪里 我还在考虑另一个
  • Linux内核如何阻止BIOS系统调用?

    BIOS 调用在 Linux 操作系统中不可用 我想知道内核如何阻止执行包含对 BIOS 子例程的调用的指令 The BIOS http en wikipedia org wiki Basic Input Output System主要在
  • 如何通过传递命名函数为 unordered_set 显式指定自定义哈希函数?

    根据已接受的答案这个问题 https stackoverflow com questions 8157937 how to specialize stdhashkeyoperator for user defined type in uno
  • 如何使用 dart json_serialized 包序列化 GeoPoint

    我正在尝试使用以下包按距离过滤我的 Firestore 集合 https github com fluttercommunity firestore helpers https github com fluttercommunity fir
  • 如何使用反射将新项目添加到集合中

    我试图使用反射将未知对象添加到未知集合类型中 当我实际执行 添加 时 我遇到了异常 我想知道是否有人可以指出我做错了什么或有替代方案 我的基本方法是迭代通过反射检索的 IEnumerable 然后将新项目添加到辅助集合中 稍后我可以将其用作
  • 定义颜色属性的多个类的优先级按声明顺序而不是规范顺序设置

    给定定义颜色属性的两个具有相同特异性的类 我认为元素类属性中列出的最后一个类将优先 From http htmlhelp com reference css struct html http htmlhelp com reference c
  • 如何导入位于pycharm项目中同一子目录中的python文件

    我在pycharm中调试和运行时出现输入错误 我的项目结构已正确扎根 etc HW3 以便HW3是根目录 我在 HW3 中有一个子文件夹 util 和一个文件 util util py 我还有另一个文件util called run tes
  • 自定义警报对话框 android

    我正在 android 中使用自定义警报对话框 我已遵循link 1 https stackoverflow com questions 9467026 change dialog position on the screen and li
  • 使用 GHC.Generics 恢复类型定义

    昨天我尝试回答这个问题是关于数据类型的表示 https stackoverflow com questions 22715572 a serializable representation of a data type for client
  • 使用 ngFor 函数时,Angular Material matToolTip 不显示

    我有一组称为报告的数据 其中包含一组网络 report networks 在返回网络数组之前 我有 model ts 来操作它 我做了一个 ngFor 来迭代网络数据以显示工作正常的详细信息 但是 在 ngFor 中添加 matToolTi