首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular2-toaster认为两个吐司是重复的?

Angular2-toaster认为两个吐司是重复的?
EN

Stack Overflow用户
提问于 2020-02-06 09:15:16
回答 2查看 279关注 0票数 1

我正在使用角度2-toaster,并试图理解为什么2个带有不同信息的敬酒被认为是“重复”的敬酒,因此只有1个吐司出现。我希望两个祝酒词都能出现。

我有这样的代码:

代码语言:javascript
复制
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);

在一个单独的文件中,我有这个烤面包机配置:

代码语言:javascript
复制
this.config = new ToasterConfig({
  positionClass: "toast-top-center",
  timeout: 10000,
  newestOnTop: true,
  tapToDismiss: true,
  preventDuplicates: true,
  animation: "fade",
  limit: 3,
});

除了类型之外,这些吐司是“复制”的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-06 13:16:38

此组件在toastId和body上检查重复项。

源代码:

代码语言:javascript
复制
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;
  }
}

由于您的吐司没有主体,因此它们匹配并未通过重复检查。

代码语言:javascript
复制
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);

这应该是可行的。

票数 2
EN

Stack Overflow用户

发布于 2020-02-06 14:35:51

我同意digitalkoi的回答。

稍微补充一下,如果你想使用没有body的toasts,你也可以将preventDuplicates设置为false

代码语言:javascript
复制
this.config = new ToasterConfig({
  positionClass: "toast-top-center",
  timeout: 10000,
  newestOnTop: true,
  tapToDismiss: true,
  ★preventDuplicates: false,
  animation: "fade",
  limit: 3,
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60086373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档