【发布时间】:2017-11-06 04:57:25
【问题描述】:
我从我的 angular2 应用程序的 firebase 中提取了一组 div 数据。数据包括名字、出生日期和姓氏。 我创建了一个搜索输入框。现在我想用仅匹配该搜索框的数据填充 div,并使用名称。我尝试使用 Search Filter Pipe ,但未能成功。有人可以帮忙吗? 以下是我的代码:
member.service.ts:
import { Injectable } from '@angular/core';
import { AngularFirestore, AngularFirestoreCollection,
AngularFirestoreDocument } from 'angularfire2/firestore';
import { AngularFireDatabase, FirebaseListObservable } from
'angularfire2/database-deprecated';
import { Observable } from 'rxjs/Observable';
import { Member } from '../models/Member';
@Injectable()
export class MemberService{
membersCollection: AngularFirestoreCollection<Member>;
members: Observable<Member[]>;
memberDoc: AngularFirestoreDocument<Member>;
constructor(
public afs: AngularFirestore,
public afd: AngularFireDatabase) {
this.members = this.afs.collection('members').snapshotChanges().map(changes
=>{ return changes.map(a => {
const data = a.payload.doc.data() as Member;
data.id = a.payload.doc.id;
return data;
});
});
}
getMembers(){
return this.members;
}
}
member.ts
export interface Member{
id?: string;
name?: string;
birthdate?: string;
lastname?: string;
}
members.component.ts
import { Component, OnInit} from '@angular/core';
import { MemberService } from '../../services/member.service';
import { Member } from '../../models/Member';
@Component({
selector: 'app-members',
templateUrl: './members.component.html',
styleUrls: ['./members.component.css']
})
export class MembersComponent implements OnInit{
members: Member[];
constructor(private memberService: MemberService) { }
ngOnInit() {
this.memberService.getMembers().subscribe(members => {
// console.log(members);
this.members = members;
});
}
}
members.component.html
<input #txtMember placeholder="Search members..."/>
<div *ngIf="members?.length > 0;else noMembers">
<ul *ngFor="let member of members" class="collection">
<li class="collection-item"><strong>{{member.name:}}</strong>
{{member.birthdate}}{{member.lastname}}></li>
</ul>
</div>
【问题讨论】:
-
请将代码添加到您的问题中
-
我已经添加了代码。
-
@Pikey 按照我在下面的答案中的建议更新您的 html 文件,并将搜索管道添加到您的项目中。检查这是否适合你。
标签: angular