iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么在Angular service中使用TemplateRef
  • 817
分享到

怎么在Angular service中使用TemplateRef

2024-04-02 19:04:59 817人浏览 八月长安
摘要

这篇“怎么在angular service中使用TemplateRef”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获

这篇“怎么在angular service中使用TemplateRef”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么在Angular service中使用TemplateRef”文章吧。

NzNotificationService.template 签名如下

template(template: TemplateRef, options?: NzNotificationDataoptions): NzNotificationRef;

所以我需要自定义的 TemplateRef 来满足我的需求

思路一

可以在 service 中定义方法 从业务组件中传入 但是这样和直接在业务中使用 NzNotificationService.template 没有什么区别 也就没有集中处理的必要了

思路二

给 service 注入 html template

既然不能直接在 service 中书写 html 相关代码 那就沿用思路一的方法

只不过事先在一处与业务无关的地方调用初始化的方法

利用 ng-template 不会生成真实的 dom 节点 以及 service 是全局共享 这两个特性三 我们就可以写出如下代码

message.service.ts

import { Injectable, TemplateRef } from '@angular/core';
import { NzNotificationService } from 'ng-zorro-antd/notification';

export enum EMessageCode {
  XXXError = 1024,
  YYYError = 1025,
}

export const MESSAGE = {
  [EMessageCode.XXXError]: 'XXXError...',
  [EMessageCode.YYYError]: 'YYYError...',
};

@Injectable({
  providedIn: 'root',
})
export class MessageService {
  private templateMap = new Map();
  constructor(private notificationService: NzNotificationService) {}

  // 初始化 templateRef
  public initTemplate(message: EMessageCode, ref: TemplateRef): void {
    this.templateMap.set(message, ref);
  }

  public showMessage(messageCode: EMessageCode) {
    switch (messageCode) {
      case EMessageCode.XXXError:
        return this.notificationService.template(this.templateMap.get(messageCode), {
          nzDuration: 0,
        });
      case EMessageCode.YYYError: {
        return this.notificationService.error('YYYError', MESSAGE[EMessageCode.YYYError]);
      }
    }
  }

  public removeMessage(messageId?: string) {
    this.notificationService.remove(messageId);
  }
}

message-service-virtual-ref.component

import { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';
import { EMessageCode, MessageService } from './message.service';

@Component({
  selector: 'app-message-service-virtual-ref',
  template: `  There are XXXError, you must refer to
          something
          to check out  `,
})
export class MessageServiceVirtualRefComponent implements AfterViewInit {
  @ViewChild('xxx_ref') xxxTemplateRef!: TemplateRef;

  constructor(private messageService: MessageService) {}

  ngAfterViewInit(): void {
    this.messageService.initTemplate(EMessageCode.XXXError, this.xxxTemplateRef);
  }
}

以上就是关于“怎么在Angular service中使用TemplateRef”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网node.js频道。

--结束END--

本文标题: 怎么在Angular service中使用TemplateRef

本文链接: https://www.lsjlt.com/news/98967.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Angular service中使用TemplateRef
    这篇“怎么在Angular service中使用TemplateRef”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获...
    99+
    2024-04-02
  • Observable怎么在Angular中使用
    这期内容当中小编将会给大家带来有关Observable怎么在Angular中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。可观察对象(Observable)可观察对象支持在应用的发布者和订阅者之间传递...
    99+
    2023-06-14
  • 使用 Angular 服务器端渲染 Transfer State Service
    假设我们使用 Angular Universal 开发一个服务器端渲染的 Angular 应用,这个应用会消费一个第三方的 Restful API. 上述场景分为下列六个步骤: 用户...
    99+
    2024-04-02
  • 怎么在Netty中注解使用Service或者Mapper
    这篇文章主要介绍了怎么在Netty中注解使用Service或者Mapper,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Netty注解使用Service或MapperSpri...
    99+
    2023-06-29
  • Angular怎么利用service实现自定义服务
    这篇文章主要介绍“Angular怎么利用service实现自定义服务”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Angular怎么利用service实现自定义服务...
    99+
    2024-04-02
  • Angular中的SSR怎么使用
    这篇文章主要介绍“Angular中的SSR怎么使用”,在日常操作中,相信很多人在Angular中的SSR怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Angular中的SSR怎么使用”的疑惑有所帮助!...
    99+
    2023-07-04
  • Angular中的NgModule怎么使用
    这篇“Angular中的NgModule怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • angular中怎么使用echarts地图
    这篇文章将为大家详细讲解有关angular中怎么使用echarts地图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在angular中使用echart的时候,只需要在对应的组件生命周期中调用echart的...
    99+
    2023-06-22
  • 怎么使用Angular cli
    本篇内容介绍了“怎么使用Angular cli”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 什么是A...
    99+
    2024-04-02
  • Angular中自定义服务Service、Provider以及Factory有什么用
    这篇文章主要为大家展示了“Angular中自定义服务Service、Provider以及Factory有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“An...
    99+
    2024-04-02
  • Angular中Directive怎么用
    这篇文章主要介绍了Angular中Directive怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Angular Directive 学习学习目的:为了更好的了解 ng...
    99+
    2023-06-14
  • Angular中Renderer怎么用
    这篇文章主要介绍了Angular中Renderer怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Angular 其中的一个设计目标是使...
    99+
    2024-04-02
  • 使用Angular CDK实现一个Service弹出Toast组件功能
    目录1.环境安装2.创建Toast组件和ToastService2.1编写Toast组件和样式在Angular中,官方团队在开发Material组件库的同时,顺手做了一套Compon...
    99+
    2024-04-02
  • Angular中怎么添加和使用Font Awesome
    今天就跟大家聊聊有关Angular中怎么添加和使用Font Awesome,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Font AwesomeFo...
    99+
    2024-04-02
  • Angular中的material怎么安装与使用
    小编给大家分享一下Angular中的material怎么安装与使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、 Angular介绍Angular是谷歌开发的...
    99+
    2023-06-08
  • 在activity中怎么获取service对象
    在Activity中,可以通过`bindService()`方法绑定Service并获取Service对象。首先,在Activity...
    99+
    2023-09-04
    activity service
  • angular中的@Component装饰器怎么使用
    今天小编给大家分享一下angular中的@Component装饰器怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收...
    99+
    2024-04-02
  • Angular怎么使用SASS样式
    这篇文章主要介绍了Angular怎么使用SASS样式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Angular怎么使用SASS样式文章都会有所收获,下面我们一起来看看吧。SASS 提供了两种编写的语法,一种是...
    99+
    2023-07-04
  • VB.NET中怎么调用Web Service
    本篇文章为大家展示了VB.NET中怎么调用Web Service,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在VB.NET调用Web Service提供的服务当Web Service已经处于对外提...
    99+
    2023-06-17
  • Angular中插槽怎么用
    这篇文章将为大家详细讲解有关Angular中插槽怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Angular插槽的使用使用ng-content 主要借助于select如果什么都不填直接使用<n...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作