Я пытаюсь реализовать компонент с данными, используя Express и Firebase DB.
Вот как данные моего запроса на обслуживание
gettext() {
return this.http.get<nomchamp[]>(this.url)
.map(res => { console.log(res); return res });
}
console.log печатает:
[{…}]
0: {text: "testoooo"}
length: 1__proto__: Array(0)
Я создал модель
export interface nomchamp {
text: String;
}
Вот мой компонент с данными
export class DatatableComponent implements OnInit {
constructor(private dataService: AjouttextService) { }
data = [];
displayedColumns = ['text'];
dataSource = new UserDataSource(this.dataService);
;
applyFilter(filterValue: string) {
filterValue = filterValue.trim(); // Remove whitespace
filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
}
ngOnInit() {
}
}
export class UserDataSource extends DataSource<any> {
constructor(private dataService: AjouttextService) {
super();
}
connect(): Observable<nomchamp[]> {
return this.dataService.gettext()
}
disconnect() { }
}
И хтмл:
<div class="example-container mat-elevation-z8">
<mat-table #table [dataSource]="dataSource">
<!--- Note that these columns can be defined in any order.
The actual rendered columns are set as a property on the row definition" -->
<!-- Position Column -->
<ng-container matColumnDef="text">
<mat-header-cell *matHeaderCellDef> No. </mat-header-cell>
<mat-cell *matCellDef="let element"> {{element}} </mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>
</div>
В моем экспресс-маршруте я отправляю объект данных, а затем вызываю его в маршруте получения
router
.route("/")
.get(function (req, res, err) {
// Get a database reference to our posts
var db = admin.database();
var ref = db.ref("/");
// Attach an asynchronous callback to read the data at our posts reference
ref.on("value", function (snapshot) {
res.send(snapshot.val());
console.log(snapshot.val());
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
});
router
.route("/")
.post(function (req, res, err) {
// Get a database reference to our posts
var db = admin.database();
var ref = db.ref("/");
// Attach an asynchronous callback to read the data at our posts reference
ref.set(
[{ text: "testoooo" }]
);
});
В моем datatable я получаю этот предварительный просмотр
[object Object]
Я нашел тот же вопрос здесь но формат полученных данных не такой, как в вопросе, потому что у меня нет массива Вот что присылает почтальон
[
{
"text": "testoooo"
}
]
["tesstooo"]
? - person Striped   schedule 13.02.2018tab
, а затем простоref.push().set({nomchamp: tab})
, я не понимаю, что вы ищете? - person Striped   schedule 13.02.2018text: String;
Может ваша модель не та? Потому что кажется, что вам нужна строка здесь. И почтальон отправляет массив. Попробуйте сменить модель. - person Striped   schedule 13.02.2018[object Object]
похоже, что ваш объект где-то преобразуется в строку. Каковы именно результаты в angular, в экспрессе и в консоли firebase после каждого шага? - person Jason Goemaat   schedule 13.02.2018object Object
- person infodev   schedule 14.02.2018