我将ngrx store (4.x) 与Angular 4 一起使用。我使用效果在后端进行CRUD 操作,如下面的示例,它在后端API 上添加了一个Task。
影响:
@Effect()
addTask: Observable<Action> = this.actions$
.ofType(LeadAction.ADD_TASK)
.map((action: LeadAction.AddTaskAction) => action.payload)
.switchMap((task: TaskViewModel) => {
return this.leadApi.leadAddTask(task.LeadId, task)
.map((taskResult: TaskViewModel) => {
return new LeadAction.AddTaskSuccessAction(taskResult);
})
.catch((e: any) => of(new LeadAction.AddTaskFailureAction(e)));
});
任务编辑组件:
onSave(): void {
this.store.dispatch(new AddTaskAction(this.task));
// **** NAVIGATE TO PAGE TaskListComponent or OverviewComponent ON SUCCESS
// OR
// **** NAVGIATE TO PAGE Y ON ERROR
}
问题:在我的组件中,我需要导航到不同的页面,但我现在很难将这个逻辑放在哪里?
特别是当我考虑以下场景时,TaskEditComponent 被不同的组件“调用”:
应该导航回TaskListComponent:
OverviewComponent->TaskListComponent->TaskEditComponent 返回列表
应该导航回OverviewComponent:
OverviewComponent->TaskEditComponent