angular - Angular6/Firebase 中的搜索栏不显示结果
问题描述
这是我第二次使用 StackOverflow。我目前正在学习 Angular6,我正在尝试集成一个搜索栏来查询 firebase 中的“客户”。
我有一些基本的 CRUD 操作正在工作,但似乎无法让搜索栏正常工作。以下是搜索栏的相关功能。
//client-search.component.ts
export class ClientSearchComponent implements OnInit {
clients;
startAt: BehaviorSubject<string|null> = new BehaviorSubject("");
endAt: BehaviorSubject<string|null> = new BehaviorSubject("\uf8ff");
constructor(private clientsSvc: ClientService) { }
ngOnInit() {
this.clientsSvc.getClient(this.startAt, this.endAt).subscribe(clients => this.clients = clients);
}
search($event) {
let q = $event.target.value;
console.log("Our start: " + q);
this.startAt.next(q);
console.log(this.startAt.next(q));
this.endAt.next(q + "\uf8ff");
}
<!-- client-search.component.html -->
<h1>Client Search</h1>
<input type="text" (keydown)="search($event)" placeholder="search clients..." class="input">
<div *ngFor="let client of clients">
<h4>{{clients?.name}}</h4>
<p>
<!-- {{movie?.Plot}} -->
</p>
</div>
<div *ngIf="clients?.length < 1">
<hr>
<p>
No results found :(
</p>
</div>
在我的客户端服务中,我有一个函数可以查询 firebase 以返回 observables 以列出它们。
getClient(start, end): FirebaseListObservable<any> {
const r: any = this.firebase.list('/clients', ref =>
ref.orderByChild('name').limitToFirst(10).startAt(start).endAt(end)
);
return r;
}
更新
深入挖掘之后,ngOnInit 调用了getClient(),但是参数好像不太喜欢。有什么办法吗?
ClientsComponent.html:1 ERROR Error: Query: First argument passed to startAt(), endAt(), or equalTo() cannot be an object.
at Function.push../node_modules/@firebase/database/dist/index.cjs.js.Query.validateQueryEndpoints_ (index.cjs.js:4702)
at Query.push../node_modules/@firebase/database/dist/index.cjs.js.Query.startAt (index.cjs.js:4964)
at client.service.ts:55
at AngularFireDatabase.push../node_modules/angularfire2/database/database.js.AngularFireDatabase.list (database.js:18)
at ClientService.push../src/app/clients/shared/client.service.ts.ClientService.getClient (client.service.ts:54)
at ClientSearchComponent.push../src/app/clients/client-search/client-search.component.ts.ClientSearchComponent.ngOnInit (client-search.component.ts:23)
at checkAndUpdateDirectiveInline (core.js:8945)
at checkAndUpdateNodeInline (core.js:10209)
at checkAndUpdateNode (core.js:10171)
at debugCheckAndUpdateNode (core.js:10804)
解决方案
推荐阅读
- ansible - 当文件存在于 Ansible yml 代码中时设置路径
- javascript - 我可以将来自 expo-av 的音频/视频对象传递到 redux 状态吗?
- python - 如何在 Python 中动态更改方法参数
- mysql - 在 MYSQL 中执行存储过程时出现错误 1064
- javascript - 将流从浏览器发送到 Node JS 服务器
- laravel - 在laravel的几页中打印几个学生的数据
- mysql - MySQL 月份和年份分组性能缓慢
- python-3.x - 如何使用 gv.Polygons 而不是 gv.Shape 成功绘制 Choropleth
- c# - 如何使用 C# 订阅 Redis 事件
- validation - 应用于单一和默认场景的验证规则