angular-material - 如何在角材料中的 Snackbar 上添加 html 内容?
问题描述
我为响应消息创建了烤面包机(snackbar)。我想在 toaster(snackbar) 上添加一个 html 内容,以便可以以正确的格式显示多条消息。
我努力了
var test ='<html> <body>' + '<h1>The Header</h1>' + '<p>The paragraph of text</p>' + '</body> </html>';
this._toastr.error(test);
_toastr : is my service.
.error : is my function in which I have to pass htmlContent
我的代码
var test = '<html> <body>' + '<h1>The Header</h1>' + '<p>The paragraph of text</p>' + '</body> </html>';
this._toastr.error(test);
输出应为:- 以下 xxx/xxx 的价格已输入 2018 年 11 月 27 日。
- 你好世界!
- 大家好!
我想要这个东西在 toster(snackbar)
解决方案
正如 Edric 在他的评论/链接中提到的那样,您将无法创建自定义 SnackBar 组件。标准 Angular Material SnackBars 只允许您设置一个message
和action
(以及一些配置选项)。
检查这个stackblitz 以获得一个非常基本的 SnackBar 组件,它从传递给它的 HTML 字符串中读取一个 HTML 字符串,data
并将字符串内容呈现为小吃栏中的 HTML。
小吃吧.component.ts
export class SnackbarComponent {
constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any,
public snackBar: MatSnackBar) {
}
}
小吃吧.component.html
<div [innerHTML]="data.html"></div>
<button mat-raised-button (click)="snackBar.dismiss()">Dismiss</button>
像这样使用组件:
openSnackbar() {
this.snackBar.openFromComponent(SnackbarComponent, {
data: {
html: '<h1>The Header</h1><p>The paragraph of text</p>'
}
});
}
如果这是您需要的,您可以轻松地将其包装在服务中。
推荐阅读
- c++ - 我使用静态库在 C++ Visual Studio 2019 中构建了一个 OpenCV 项目,但在运行时仍需要 dll 文件
- azure - 第一方应用程序可以调用 Graph API 以外的 API 吗?
- python - Scrapy 中的 XML 导出器 serialize_field
- c# - 将带有字符串参数的动作传递给没有它的方法
- c++ - 有没有办法从整数中获取模板类型?
- java - 如何用缺失的整数替换 ArrayList 中的重复整数
- wordpress - 在woocommerce中更改商店页面的HTML标签
- c++ - 初始化地图被报告为空的奇怪行为
- sql-server - 在关键字“UNION”和“Top”附近调整不正确的语法
- c++ - C++一个类使用其他类