【发布时间】:2019-11-26 09:54:20
【问题描述】:
我正在编写应用程序,我可以使用注入 serverService 的 ngxs 将事件保存在 mongodb 中。当我发送事件时,我会在没有 id 的情况下这样做,因为 mongo 会自动添加 id,只需等待它然后修补状态即可。 (insertEvent returng id 然后我查找整个 Event 并获取它)
@Action(CreateEvent)
createEvent({ getState, patchState }: StateContext<EventStateModel>, { event }: CreateEvent) {
this.eventsService.insertEvent(event)
.pipe(map(id => id['id']))
.pipe(switchMap(id => id ? this.eventsService.getEventById(id) : empty() ))
.subscribe(event => {
const { events } = getState();
patchState({
events: [
...events,
event
]
});
});
}
但添加事件后,我想获取此 ID,以定向到事件视图。我不知道如何获取带有 id 的事件。
createRandom(){
this.store.dispatch(
new CreateEvent(EventFactory.create())
)
}
当我尝试使用动作处理时,它总是由我返回带有模拟 ID 的事件。
this.actions$.pipe(ofActionSuccessful(CreateEvent)).subscribe((ev) => {
console.log(ev)
})
【问题讨论】: