У меня есть следующий фрагмент
Это мой main.html
<h2 class="txtcenter po-2text" style="padding-top:30px">
{{title}}
</h2>
Это мой main.ts :
title: string;
ngOnInit() {
var self = this;
var ref = firebase.database().ref('schools/' + this.currentUserId());
ref.orderByChild('title').on('value', function(dataSnapshot) {
console.log("Title is: " + dataSnapshot.val().title);
self.title = dataSnapshot.val().title;
});
}
Несмотря на то, что обратный вызов запускается с некоторыми действительными данными, заголовок не обновляется автоматически. Что мне не хватает?
Любая помощь приветствуется!
1 ответ
Обнаружение угловых изменений работает на основе событий браузера, так как это обратный вызов события базы огня, который не будет запускать обнаружение изменения. Так что попробуйте следующее
Импортировать NgZone:
import { Component, NgZone } from '@angular/core';
Добавьте его в свой конструктор класса
constructor(public zone: NgZone, ...args){}
Запустите код с помощью zone.run:
ref.orderByChild('title').on('value', (dataSnapshot) => {
console.log("Title is: " + dataSnapshot.val().title);
this.zone.run(() => this.title = dataSnapshot.val().title;)
});
Похожие вопросы
Новые вопросы
angular
Вопросы по Angular (не путать с AngularJS), веб-фреймворку от Google. Используйте этот тег для угловых вопросов, которые не относятся к конкретной версии. Для более старой веб-платформы AngularJS (1.x) используйте тег angularjs.