angular - 如何在 Angular 中使用 ajax 实现搜索?
问题描述
我正在使用网站“ http://jsonplaceholder.typicode.com/posts/ ”进行虚假的 ajax 调用。我想在我的浏览器页面上执行搜索。我已经定义了一个 onSearch() ,它应该接收输入字段(SearchText)的值并执行服务调用以从 url 获取所有数据,然后执行比较并输出匹配的数据。我该怎么做?
我的 project.html :
我的 project.ts:到目前为止,我还没有实现比较逻辑,也需要帮助。
onSearch(event){
console.log(event.target.value)
获取数据 project.service.ts 的服务:
searchUsers(searchby:string,searchText:string):Observable<Posts[]>
{
return this.httpclient.get<Posts[]>('https://jsonplaceholder.typicode.com/posts')
}
请帮助。在此先感谢。
解决方案
searchField: FormControl;
form: FormGroup;
post : Post[] = []
constructor(private projectService ProjectService , private fb:FormBuilder){
this.searchField = new FormControl();
this.form = fb.group({search: this.searchField});
this.searchField.valueChanges
.debounceTime(400)
.switchMap(term => this.projectService.searchUsers(term))
.subscribe((resp) => {
this.posts = resp.filter( // filter logic here)
});
}
在 html 部分,您可以使用 *ngFor 结构指令来显示项目列表。
推荐阅读
- xslt - xsl 想要将以下 xml 转换为 html:
- javascript - 如何在 vuetify 中动态添加/删除带有选择/自动完成值的新表单行?
- php - 如何在 PHP 中将变量连接成数组值?
- javascript - 使用对象从数组中删除重复项
- python - Python:如何有效地打开和读取来自多个进程的 zipfile
- javascript - 在js中,你能检测到页面什么时候没有焦点吗?
- wordpress - WordPress:如何禁用所有页面的页脚
- scipy - 由于“在日志中遇到除以零”错误,我无法拟合 Maxwell 分布
- java - 如果对数据库本身的访问是线程安全的,我们如何确保冗余数据访问应用程序实例在 Java 中安全地工作线程?
- javascript - 如何让 Google Docs 语音输入在开启时保持激活状态?