是否可以使用NGXS存储对用户路由解析器进行处理?
我进行了这样的测试,但是我不知道这是否是正确的方法:
import {ActivatedRouteSnapshot, Resolve} from "@angular/router";
import {Todo} from "./todos.models";
import {Observable} from "rxjs/Observable";
import {Select, Store} from "@ngxs/store";
import {GetTodo, TodosState} from "./todos.state";
import {Injectable} from "@angular/core";
@Injectable()
export class TodoResolver implements Resolve<Todo> {
constructor(
private store:Store
) {}
@Select(TodosState.getTodo)
private todo$:Observable<Todo>;
resolve(route:ActivatedRouteSnapshot): Observable<Todo>
{
const id = <number><any> route.paramMap.get('id');
this.store.dispatch(new GetTodo(id));
return this.todo$;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试此操作时,应用程序将挂起。没有显示错误。
欢迎所有帮助。谢谢
请忽略,我自己找到了解决方案......
将代码更改为:
@Injectable()
export class TodoResolver implements Resolve<Todo> {
constructor(
private store:Store
) {}
resolve(route:ActivatedRouteSnapshot): Observable<Todo>
{
const id = <number><any> route.paramMap.get('id');
this.store.dispatch(new GetTodo(id));
return this.store.selectOnce(TodosState.getTodo);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |