我正在使用Angular 5构建CRUD(创建,读取,更新,删除)表单,并希望导航至该路线以显示所有已添加元素(包括新元素)的概览。

this.myElement.create({
    //... Do some API magic
}).subscribe(() =>
    this.router.navigate(['/overview']);
);


更新数据库后,用户将router.navigate转到概述。无论更改是否成功,都应显示一条消息(警报,通知,吐司或其他内容)。

可能的方法:


我是否需要实施一项自己的服务来传输此类信息?
Angular中有内置的解决方案吗?
是否应该使用事件处理程序或Oberserver之类的工具来监视任何CRUD方法?

最佳答案

您需要在实施此警报的地方小心。如果是一项服务,您可能会做

.subscribe(() =>
    this.toast.show('Task is finished');
    this.router.navigate(['/overview']);
);


由于要切换路由,因此toast组件必须位于<router>或更高版本的父模板中。

如果服务是针对body标签设计的,例如。使用position: fixed。那么无论如何您都是安全的。

如果您担心,我认为不会刷新整个页面。

只是为了回答你的问题


我是否需要实施一项自己的服务来传输此类信息?
是的,不一定是你,而是某人。
Angular中有内置的解决方案吗?也许是因为您可以将放置在屏幕上的元素作为简单警报来放置。 Angular对此任务没有做任何特定的事情。
是否应该使用事件处理程序或Oberserver之类的工具来监视任何CRUD方法?不需要,您想要先完成此警报,然后再移至其他警报。但是,如果您希望其他人知道已触发警报,则单击“是”,您希望该服务发布可观察者。

关于javascript - 使用Angular 5将警报或通知转移到下一条路线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49174485/

10-12 07:00