我有一个组件“CompA”,它有一个名为getDocID()的函数,它在鼠标单击时从模板中获取一个值,然后在firebase中使用该值进行一些查询后异步获取一个对象。
问题是,我需要将此对象传递给路由上的另一个组件“CompB”。
这就是我的代码现在的样子:
模板:
<a (click)="getDocID(doc.docID)">Edit this Document</a>
组件:
getDocID(docID){
this._docEditService.getSingleDoc(docID, singleDoc => {
//here will come the async singleDoc object which I need to pass to the edit-doc route
});
this._router.navigate(['edit-doc']);
}
服务
getSingleDoc(docID, callback) {
this.userSingleDoc = this.af.database.list('docs', {
query: {
orderByChild: 'docID',
equalTo: docID
}
});
this.userSingleDoc.forEach(element => {
for (var el in element) {
var x = element[el];
var singleDoc = {
docID: x['$key'],
docTitle: x.docTitle,
docDescription: x.docDescription,
timestamp: x.timestamp,
}
callback(singleDoc)
}
});
}