如何使用 `?q=...` HTTP 参数通过 ng-select 执行后端搜索?

问题描述

我在 ng-select 12 应用中使用 Angular 7.2.0。

我需要提供给 ng-select 的数据包含数以万计的条目,所以我不想将所有数据预加载ng-select 中以让它在以下情况下执行前端过滤你打字。

相反,我希望 ng-select 使用我的后端作为数据源并传递一个参数,例如q用户输入的内容以触发自动完成。

例如如果用户在输入字段中键入 "foo",我希望 ng-selectGET 作为参数对我的服务器执行 HTTP ?q=foo。然后后端将执行过滤并仅返回匹配 foo 的项目。

然后用户可以从这些中选择他们想要的。

我没有在此页面上找到有关此内容的提及:

https://ng-select.github.io/ng-select#/data-sources

我知道 [items]ng-select 输入可以获得一个 Observable,但是我如何访问用户输入的值进行搜索,然后将 [items] 输入更新为将该值用作 ?q=... 参数?

谢谢!

解决方法

ng-select 作为 (search) 输出。发出该事件后,我可以使用使用更新后的 API 调用的新 observable 更新 [items] 输入。