gpt4 book ai didi

angular - 将链接插入 MatSnackBar

转载 作者:太空狗 更新时间:2023-10-29 18:03:49 27 4
gpt4 key购买 nike

是否可以在 Angular Material 2 MatSnackBarModule 中插入链接?

我已经尝试在文本中执行此操作,但它会将 html 显示为文本。

const text = '<a routerLink="/login">login</a>';
this.snackBar.open(text, 'OK', {
duration: environment.snackBarTime,
});

最佳答案

您必须为链接创建自己的自定义 snackbar 组件:

custom-snackbar.component.html:

<a routerLink="/login">Login</a>

custom-snackbar.component.ts:

import { Component } from '@angular/core';

@Component({
selector: 'custom-snackbar',
templateUrl: 'custom-snackbar.component.html'
})
export class CustomSnackBar {}

此外,请确保此自定义 snackbar 已在应用模块文件中的 declarationsentryComponents 下声明:

app.module.ts:

import { CustomSnackBar } from './custom-snackbar/custom-snackbar.component';
import { NgModule } from '@angular/core';
import { MatSnackBarModule } from '@angular/material';
// Other module imports here

@NgModule({
declarations: [
CustomSnackBar
// Other declarations here
],
imports: [
MatSnackBarModule,
// Other modules here
],
entryComponents: [
CustomSnackBar
]
})
export class AppModule {}

第三,要打开这个snackbar组件,调用MatSnackBaropenFromComponent方法:

app.component.ts:

import { MatSnackBar } from '@angular/material';
import { CustomSnackBar } from './custom-snackbar/custom-snackbar.component';
export class AppComponent {
constructor(private snackbar: MatSnackBar){}

login() {
/*
* `openFromComponent` accepts two properties:
* The first param is `ComponentType<any>`, or your snackbar
* component
* The second param is `MatSnackBarConfig`. In this sample,
* I'll be using the duration param.
*/
this.snackbar.openFromComponent(CustomSnackBar, { duration: 5000 };
}
}

最后,我建议你给snackbar中的anchor元素添加一个类,因为它看不清楚。

这是一个 demo供您玩耍。

关于angular - 将链接插入 MatSnackBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46949233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com