在angular2

时间:2017-12-25 02:05:12

标签: angular rxjs observable angularfire2 angular-components

我有一个组件“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)
      }
    });
  }

0 个答案:

没有答案