首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在angular应用程序中全局使用ngx-toastr

在angular应用程序中全局使用ngx-toastr
EN

Stack Overflow用户
提问于 2019-04-02 20:47:06
回答 2查看 2.3K关注 0票数 2

我在我的Angular 7应用程序中使用了以下toastr实现:https://www.npmjs.com/package/ngx-toastr

我正在尝试弄清楚如何将所有toast附加到body或其他div元素,这些元素将位于我的根应用程序组件中(我希望即使在调用它们的组件被销毁的情况下也能保持它们的显示)。

有没有办法把它归档?

EN

回答 2

Stack Overflow用户

发布于 2019-04-02 21:05:10

正如链接中的自述文件所述,您需要提供自己的ToastrContainer。

代码语言:javascript
复制
import { 
    ToastrModule, 
    ToastContainerModule // Add this one
} from 'ngx-toastr';


@NgModule({
  declarations: [AppComponent],
  imports: [
    //...
    ToastContainerModule // Add this one
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}

并将div添加到根组件(或容器所在的任何位置),如下所示:

代码语言:javascript
复制
@Component({
  selector: 'app-root',
  template: `
  <h1><a (click)="onClick()">Click</a></h1>
  <div toastContainer></div> <!-- Add this line here, above should be your router -->
`
})
export class AppComponent implements OnInit {
  // Get a reference to the directive
  @ViewChild(ToastContainerDirective) toastContainer: ToastContainerDirective;

  constructor(private toastrService: ToastrService) {}
  ngOnInit() {
    // Register the container
    this.toastrService.overlayContainer = this.toastContainer;
  }
  onClick() {
    this.toastrService.success('in div');
  }
}
票数 2
EN

Stack Overflow用户

发布于 2019-04-02 20:53:53

在根模块上声明模块(通常是app.module.ts)

代码语言:javascript
复制
import { ToastrModule } from 'ngx-toastr';

@NgModule({
    imports: [ ToastrModule.forRoot({ ...global options... }) ],
    ...
})

toasts可以在任何地方被调用(假设你已经在组件中注入了服务),并且应该在你定义它们的地方显示(并且没有元素覆盖它们)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55475175

复制
相关文章

相似问题

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