Kat*_*son 2 components state rxjs angular-ui-router angular
我有 2 个组件:HomeComponent 和 CityComponent。他们没有任何关系。导航回 HomeComponent 后,当我再次导航到 CityComponent 时,它的状态丢失了。我怎样才能保存状态?有任何想法吗?
小智 5
您可以使用服务来记住路由之间的状态,因为它们通常是单例的。状态行为主体可以存储一个对象,其中包含您可能想要记住的任何状态,因此每次初始化组件时,您所要做的就是.getValue()从state$服务中检索当前值。此外,当您更新任何状态值时,您应该记住更新存储在服务中的状态。
@Injectable({
providedIn: "root"
})
export class StateService {
state$ = new BehaviourSubject<any>(null);
}
Run Code Online (Sandbox Code Playgroud)
export class CityComponent implements OnInit {
constructor(private stateService: StateService) {}
state: any;
ngOnInit() {
this.state = this.stateService.state$.getValue() || {};
}
updateFoo(val: any) {
this.state.foo = val;
this.stateService.state$.next(state);
}
Run Code Online (Sandbox Code Playgroud)
<p>{{state.foo}}</p>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5300 次 |
| 最近记录: |