在角度4应用程序中,我正在从一个模块移动到另一个模块我想自动保存我的内容,所以我需要识别路线的变化。
class MyClass {
constructor(private router: Router) {
router.events.subscribe((val) => {
// see also
console.log(val instanceof NavigationEnd)
});
}
}
我已经使用过此代码,但此调用每次访问都会递增。 它类似于Gmail,它构成了当我从合成屏幕转移到其他屏幕时如何将数据保存到草稿中。
答案 0 :(得分:3)
离开时您将打开订阅,因此它会递增。您需要取消订阅:
import { Subscription } from 'rxjs/Subscription';
// ...
sub = new Subscription();
// ...
this.sub = router.events.subscribe((val) => {
// see also
console.log(val instanceof NavigationEnd)
});
// ...
ngOnDestroy() {
this.sub.unsubscribe();
}