在Angular2-toaster中,可以使用toastId
属性来标识不同的toast。如果两个toast的toastId
相同,Angular2-toaster会认为它们是重复的。
以下是一个示例代码,演示如何使用toastId
属性来判断两个toast是否重复:
import { Component } from '@angular/core';
import { ToasterService, Toast } from 'angular2-toaster';
@Component({
selector: 'app-toast-example',
template: `
`,
})
export class ToastExampleComponent {
constructor(private toasterService: ToasterService) {}
showToast() {
const toast: Toast = {
type: 'success',
title: 'Example Toast',
toastId: 'example-toast', // 设置toastId
};
if (this.isToastDuplicate(toast)) {
console.log('Duplicate toast');
return;
}
this.toasterService.pop(toast);
}
isToastDuplicate(toast: Toast): boolean {
const toasts = this.toasterService.getToasts();
return toasts.some(t => t.toastId === toast.toastId);
}
}
在上面的示例中,我们通过this.toasterService.getToasts()
方法获取当前已经显示的所有toast,然后使用Array.some()
方法遍历这些toast,检查它们的toastId
是否与新的toast相同。如果存在相同的toastId
,则认为是重复的toast。
注意,这里的toastId
是我们自己定义的,可以根据实际需求来设置。