正在使用 ngxs 状态管理并具有以下状态和选择器:
export interface ITodoCountState {
count: string;
}
@State<ITodoCountState>({
name: 'todosCount',
defaults: {
count: '',
},
})
@Injectable()
export class TodoCountState {
@Selector([TodoCountState])
static count(state: ITodoCountState) {
return state.count;
}
@Action(SetTodosCount)
GetTodosCount(ctx: StateContext<ITodoCountState>, action: SetTodosCount) {
ctx.patchState({
count: action.count,
});
}
}
然后在我的组件中有这样的:
@Select(TodoCountState.count) todosCount$!: Observable<string>;
todosCount$
直接用在我的html模板中。
如何使用角度信号来实现
todosCount$
?
我实现的是Angular自带的
toSignal
方法。我使用立面与商店交流视图,在那个级别我放置了类似的内容:
@Select(TodoCountState.count) todosCount$!: Observable<string>;
$todosCount = toSignal(this.todosCount$, {initialValue: ""})
然后我在视图中决定是否需要可观察值或信号。