Angular 角度NGX中不同分量数据的搜索

Angular 角度NGX中不同分量数据的搜索,angular,angular-reactive-forms,state-management,ngxs,angular-state-managmement,Angular,Angular Reactive Forms,State Management,Ngxs,Angular State Managmement,我试图弄清楚如何从不同的组件在NGX中搜索。当我从应用程序组件(另一个组件)显示数据时,我从导航栏组件获得了搜索栏。 请查看此stackblitz链接 代码 看看你的StackBlitz,你似乎在试图根据peopleForm输入元素中输入的内容过滤列表 我发现了一种建模此问题的好方法,即将“搜索文本”存储在状态中,并使用一个将当前搜索值应用于列表的选择器,返回符合条件的项目,而不是在组件中更改此值时尝试从存储中进行选择 请看我概述了这种方法的地方。只有一个问题。。为什么您没有使用输出?@pro

我试图弄清楚如何从不同的组件在NGX中搜索。当我从应用程序组件(另一个组件)显示数据时,我从导航栏组件获得了搜索栏。 请查看此stackblitz链接

代码


看看你的StackBlitz,你似乎在试图根据
peopleForm
输入元素中输入的内容过滤列表

我发现了一种建模此问题的好方法,即将“搜索文本”存储在状态中,并使用一个将当前搜索值应用于列表的选择器,返回符合条件的项目,而不是在组件中更改此值时尝试从存储中进行选择


请看我概述了这种方法的地方。

只有一个问题。。为什么您没有使用
输出
?@programoholic。如果导航栏位于不同的模块上怎么办?输出仅适用于父子关系密切注意取消订阅。对我来说,你似乎在不取消订阅的情况下创建了很多商店订阅。嗨。谢谢你的回复。如果你在同一个组件上,我相信你的答案是有效的,对吗?如果搜索与显示输出的组件不同,则进行挖掘。你能用叉子叉我的闪电战吗?ThanksIt与您拥有的组件组合无关——在您的情况下,navbar组件将向状态发送操作。然后,应用程序组件将看到已过滤列表的优点是订阅了Selector,或者如果您同意,您可以取消我的stackblitz吗?谢谢你看看这个
this.peopleForm.get('name').valueChanges.pipe(debounceTime(500)).subscribe(
  (name: string) => {
    console.log(name);
    this.people$ = this.store.select(AppState.nameFilter(name));
  }
)