
上QQ阅读APP看书,第一时间看更新
Detecting application state changes
To detect a state change, we can, luckily, use the Angular router's change event and take actions based on that. So, import the Router module in your app.component.ts and then use that to detect any state change:
import { Router, NavigationEnd } from '@angular/router';
import { Stack } from './utils/stack';
...
...
constructor(private stack: Stack, private router: Router) {
// subscribe to the routers event
this.router.events.subscribe((val) => {
// determine of router is telling us that it has ended
transition
if(val instanceof NavigationEnd) {
// state change done, add to stack
this.stack.push(val);
}
});
}
Any action that the user takes that results in a state change is now being saved into our stack, and we can move on to designing our layout and the back button that transitions the states.