- Message全局提示
- 何时使用
- 如何使用
- 代码演示
- API
- 单独引入此组件
- NzMessageServiceservice
- 全局配置(NZ_MESSAGE_CONFIG)
- NzMessageDataFilled
Message全局提示
全局展示操作反馈信息。
何时使用
- 可提供成功、警告和错误等反馈信息。
- 顶部居中显示并自动消失,是一种不打断用户操作的轻量级提示方式。
如何使用
如果要修改全局默认配置,你可以设置提供商 NZ_MESSAGE_CONFIG
的值来修改。(如:在你的模块的providers
中加入 { provide: NZ_MESSAGE_CONFIG, useValue: { nzDuration: 3000 }}
,NZ_MESSAGE_CONFIG
可以从 ng-zorro-antd
中导入)
默认全局配置为:
{
nzDuration: 3000,
nzMaxStack: 7,
nzPauseOnHover: true,
nzAnimate: true
}
代码演示
普通提示
信息提醒反馈。
import { Component } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd';
@Component({
selector: 'nz-demo-message-info',
template: `
<button nz-button [nzType]="'primary'" (click)="createBasicMessage()">Display normal message</button>
`,
styles: []
})
export class NzDemoMessageInfoComponent {
constructor(private message: NzMessageService) {}
createBasicMessage(): void {
this.message.info('This is a normal message');
}
}
修改延时
自定义时长 10s
,默认时长为 3s
。
import { Component } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd';
@Component({
selector: 'nz-demo-message-duration',
template: `
<button nz-button [nzType]="'default'" (click)="createBasicMessage()">Customized display duration</button>
`,
styles: []
})
export class NzDemoMessageDurationComponent {
createBasicMessage(): void {
this.message.success('This is a prompt message for success, and it will disappear in 10 seconds', {
nzDuration: 10000
});
}
constructor(private message: NzMessageService) {}
}
结束事件
可通过订阅 onClose
事件在 message 关闭时做出某些操作。以上用例将依次打开三个 message。
import { Component } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd';
import { concatMap } from 'rxjs/operators';
@Component({
selector: 'nz-demo-message-close',
template: `
<button nz-button [nzType]="'default'" (click)="startShowMessages()">Display a sequence of messages</button>
`,
styles: []
})
export class NzDemoMessageCloseComponent {
constructor(private message: NzMessageService) {}
startShowMessages(): void {
this.message
.loading('Action in progress', { nzDuration: 2500 })
.onClose!.pipe(
concatMap(() => this.message.success('Loading finished', { nzDuration: 2500 }).onClose!),
concatMap(() => this.message.info('Loading finished is finished', { nzDuration: 2500 }).onClose!)
)
.subscribe(() => {
console.log('All completed!');
});
}
}
其他提示类型
包括成功、失败、警告。
import { Component } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd';
@Component({
selector: 'nz-demo-message-other',
template: `
<button nz-button (click)="createMessage('success')">Success</button>
<button nz-button (click)="createMessage('error')">Error</button>
<button nz-button (click)="createMessage('warning')">Warning</button>
`,
styles: [
`
[nz-button] {
margin-right: 8px;
}
`
]
})
export class NzDemoMessageOtherComponent {
createMessage(type: string): void {
this.message.create(type, `This is a message of ${type}`);
}
constructor(private message: NzMessageService) {}
}
加载中
进行全局 loading,异步自行移除。
import { Component } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd';
@Component({
selector: 'nz-demo-message-loading',
template: `
<button nz-button [nzType]="'default'" (click)="createBasicMessage()">Display a loading indicator</button>
`,
styles: []
})
export class NzDemoMessageLoadingComponent {
constructor(private message: NzMessageService) {}
createBasicMessage(): void {
const id = this.message.loading('Action in progress..', { nzDuration: 0 }).messageId;
setTimeout(() => {
this.message.remove(id);
}, 2500);
}
}
API
单独引入此组件
想要了解更多关于单独引入组件的内容,可以在快速上手页面进行查看。
import { NzMessageModule } from 'ng-zorro-antd';
NzMessageServiceservice
组件提供了一些服务方法,使用方式和参数如下:
NzMessageService.success(content, [options])
NzMessageService.error(content, [options])
NzMessageService.info(content, [options])
NzMessageService.warning(content, [options])
NzMessageService.loading(content, [options])
参数 说明 类型 默认值 content 提示内容 string|TemplateRef<void>
- options 支持设置针对当前提示框的参数,见下方表格 object
-
options
支持设置的参数如下:
参数 | 说明 | 类型 |
---|---|---|
nzDuration | 持续时间(毫秒),当设置为0时不消失 | number |
nzPauseOnHover | 鼠标移上时禁止自动移除 | boolean |
nzAnimate | 开关动画效果 | boolean |
还提供了全局销毁方法:
NzMessageService.remove(id)
// 移除特定id的消息,当id为空时,移除所有消息(该消息id通过上述方法返回值中得到)
全局配置(NZ_MESSAGE_CONFIG)
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
nzDuration | 持续时间(毫秒),当设置为0时不消失 | number | 3000 |
nzMaxStack | 同一时间可展示的最大提示数量 | number | 8 |
nzPauseOnHover | 鼠标移上时禁止自动移除 | boolean | true |
nzAnimate | 开关动画效果 | boolean | true |
nzTop | 消息距离顶部的位置 | number|string | 24 |
NzMessageDataFilled
当你调用 NzMessageService.success
或其他方法时会返回该对象。
export interface NzMessageDataFilled {
onClose: Subject<false>; // 当 message 关闭时它会派发一个事件
}