![](/img/trans.png)
[英]Angularfire2 Firestore - Unwrap Observable into JSON Array
[英]Angular / AngularFire2 Firestore - Initialise Observable Collection
我正在使用材料2,並且試圖通過分頁和排序來創建數據表,因此我需要觀察到我的集合,但是我認為我必須在控制器中錯誤地填充/初始化數組。
我一直在使用下面的方法用“費用” firestore集合中的數據填充“費用”數組,但這總是說“類型'Observable <{} []>'不可分配給類型'任何[]'” ...
import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';
import { MatPaginator, MatTableDataSource, MatSort } from '@angular/material';
import { Observable } from 'rxjs/Observable';
import { AngularFireDatabase } from 'angularfire2/database';
import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';
@Component({
selector: 'app-expense-list',
templateUrl: './expense-list.component.html',
styleUrls: ['./expense-list.component.scss']
})
export class ExpenseListComponent implements OnInit, AfterViewInit {
tableColumns = [ 'id' ];
expenses: any[];
constructor(private db: AngularFirestore) {
this.expenses = this.db.collection('/expenses').valueChanges();
}
ngOnInit() {
}
ngAfterViewInit() {
}
viewExpense(row) {
console.log('viewExpense(' + row.id + '): ', row);
}
}
如何正確創建一個由firestore集合中的數據填充的可觀察數組?
這只是一個打字問題。 如果將expenses
類型更改為Observable<any[]>
則將編譯代碼。
基本上,你告訴打字稿,你會被節省的純Array
中的任何expenses
屬性,但實際上是在保存Observable
含有Array
( Obsevable<Array<any>>
或Observable<any[]>
在此處了解有關泛型類型的更多信息: https : //www.typescriptlang.org/docs/handbook/generics.html 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.