存储来自service.ts的数据以在同一service.ts中使用

时间:2019-01-25 18:41:29

标签: javascript angularjs

我有firestore.service.ts,在一种方法中,我在firebase中创建和更新集合...离开该方法后,我更改了集合的“ id”,但是我需要此“ id”为不会丢失,因为我需要下一个方法。 如何保存该“ id”值?

  public createFormulario ( data ) {
        return this.firestore.collection('formularios').add(data).then
        (ref => {
          data.id = ref.id; <==keep this data.id
         this.firestore.collection('formularios').doc( ref.id ).update(data);
        });

  public createPregunta1 ( data: any ) {

    this.firestore.collection('formularios').doc( 'i need the above data.id here' ).update(data);
}

所以,我需要从createFormulario中捕获数据。 并在另一种称为createPregunta1的方法中使用它。

很明显,当应用程序运行并从第一页传递到第二页时。该data.id为空

1 个答案:

答案 0 :(得分:1)

您可以在服务/类中声明一个变量,例如id: number;,然后可以在类中的任何地方引用该变量。

因此,在您的createFormulario方法中,您可以说this.id = ref.id;,它将在服务中将ID全局存储(在服务内),您可以在createPreguntal方法中将其引用为this.id

export class FirestoreService {
  //declare our class variables
  id: number;

  public createFormulario ( data ) {
      return this.firestore.collection('formularios').add(data).then
          (ref => {
            this.id = ref.id; //store the id in our class variable
            this.firestore.collection('formularios').doc( ref.id ).update(data);
          });
  }

  public createPregunta1 ( data: any ) {
      this.firestore.collection('formularios').doc(this.id).update(data);
  }
}