我正在使用角度2-toaster,并试图理解为什么2个带有不同信息的敬酒被认为是“重复”的敬酒,因此只有1个吐司出现。我希望两个祝酒词都能出现。
我有这样的代码:
var toast: Toast = {
type: 'error',
title: "one toast, from one dev to another",
};
var toast2: Toast = {
type: 'error',
title: "another toast, yo!",
};
this.toasterService.pop(toast);
this.toasterService.pop(toast2);在一个单独的文件中,我有这个烤面包机配置:
this.config = new ToasterConfig({
positionClass: "toast-top-center",
timeout: 10000,
newestOnTop: true,
tapToDismiss: true,
preventDuplicates: true,
animation: "fade",
limit: 3,
});除了类型之外,这些吐司是“复制”的吗?
发布于 2020-02-06 13:16:38
此组件在toastId和body上检查重复项。
源代码:
if (this.toasterconfig.preventDuplicates && this.toasts.length > 0) {
if (toast.toastId && this.toasts.some(t => t.toastId === toast.toastId)) {
return;
} else if (this.toasts.some(t => t.body === toast.body)) {
return;
}
}由于您的吐司没有主体,因此它们匹配并未通过重复检查。
var toast: Toast = {
type: 'error',
title: 'one toast, from one dev to another',
body: 'test'
};
var toast2: Toast = {
type: 'error',
title: 'another toast, yo!',
body: 'test2'
};
this.toasterService.pop(toast);
this.toasterService.pop(toast2);这应该是可行的。
发布于 2020-02-06 14:35:51
我同意digitalkoi的回答。
稍微补充一下,如果你想使用没有body的toasts,你也可以将preventDuplicates设置为false。
this.config = new ToasterConfig({
positionClass: "toast-top-center",
timeout: 10000,
newestOnTop: true,
tapToDismiss: true,
★preventDuplicates: false,
animation: "fade",
limit: 3,
});https://stackoverflow.com/questions/60086373
复制相似问题