【问题标题】:How to display a firebase "row" that has two columns in ionic 2?如何显示在 ionic 2 中有两列的 firebase“行”?
【发布时间】:2017-07-24 17:45:24
【问题描述】:

我正在使用 Ionic 2/Typescript 创建一个分配跟踪器应用程序,并使用 Firebase 作为数据库。主页是数据库中的作业列表。当用户添加新任务时,它会从用户那里获取 2 个输入(标题和到期日期)并将它们保存到数据库中的一个条目中,没有问题。我不知道如何让条目重新显示在应用程序中?我确实让它与一个用户输入和一个警报完美地工作,而不是一个单独的页面来添加,单独的页面是它走下坡路的地方。

我不确定我是否添加错误或显示错误或两者兼有 - 任何帮助或建议将不胜感激!

用户保存新作业时的打字稿代码:

saveItem(){
 var assignment = {
  title : this.title,
  due : this.due,
 }

this.assignments.push({
           assignment,
        });
}

用于添加新的离子代码:

<form (submit) = "saveItem()" >
 <ion-item>
  <ion-label floating>Assignment Title</ion-label>
  <ion-input  type="text" [(ngModel)]="title" name="title"></ion-input>
 </ion-item>

 <ion-item>
  <ion-label floating>Date</ion-label>
   <ion-datetime displayFormat="MMM DD, YYYY HH:mm" [(ngModel)]="due" name="due"></ion-datetime>   
 </ion-item>

 <div padding>
  <button type="submit" color="primary" block >Save</button>
 </div>
</form>

显示列表的离子代码:

<ion-list>
 <ion-item *ngFor="let a of assignments | async" (click)="showOptions(a.$key, a.title, a.due)">
  {{a.assignment}}
 </ion-item>
</ion-list>

这是它在数据库中的显示方式: testentry

【问题讨论】:

  • 你能告诉我们你的on("child_added")回调吗?
  • 是更新离子列表还是其他什么?异步意味着我最初不需要一个,那是我出错的地方吗?
  • 哦,是的。您需要使用on("child_added") 来获取最新的附加值并更新您的列表。 this.assigments 是对 firebase 数据库的引用,对吧?还是只是一个数组?
  • 是的,它是对数据库的引用!我应该把 on("child_added") 放在哪里?

标签: angular typescript firebase firebase-realtime-database ionic2


【解决方案1】:

您需要创建一个新的全局数组并使用它来存储要显示的分配。将新的全局数组声明为assignmentsList。保持saveItem 函数不变,但进行这些更改:

在你看来,改变这个:

*ngFor="let a of assignments | async"

到这里:

*ngFor="let a of assignmentsList | async"

在您的班级中,您需要添加一个on("child_added"),如下所示: 在您的构造函数内部:

this.assignmentsList = [];
this.assignments.on("child_added", snapshot => {
  this.assignmentsList.push(snapshot.val());
});

上述代码将获取之前添加到 Firebase 以及新添加的所有分配。

让我知道它是否对你有用!

【讨论】:

  • 我添加了所有这些,但在构造函数中出现“on”错误,它告诉我它“不存在于类型“FirebaseListObservable”上?任何对分配的引用在我的代码中是“作业:FirebaseListObservable”所以我认为我不能把它拿出来 - 我可以吗?
  • 哦,好的。您正在使用 AngularFire,对吗?那么你不需要on 函数(我认为)。 assignments 数组应该会自动更新。你是如何声明你的 this.assignments 对象的?
猜你喜欢
  • 2018-04-19
  • 2017-08-10
  • 2018-09-04
  • 2021-12-20
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
相关资源
最近更新 更多