Я пытаюсь понять, почему наблюдаемое событие не отображается в шаблоне. Я пытаюсь помочь одному из моих товарищей по работе. Он выполняет проект Electron с Angular 2 и использует JavaScript вместо TypeScript. Это боль, и, надеюсь, мы скоро преобразуем его в TypeScript.Наблюдаемое событие, не отображаемое в шаблоне Angular2
Переменная 'eventEmitter' связана в шаблоне с асинхронным каналом. У меня есть 2-секундный таймер, который испускает событие. Шаблон не отображает ничего, кроме сообщения Hello. Я поставил точки останова, и таймер стреляет, и испускания выходят. Я закодировал подписку и подтвердил, что событие выходит и может быть получено. Это комментарий сейчас. Вот мой компонент приложения:
var count = 0;
var eventEmitter = new ng.core.EventEmitter();
(function(app) {
var MessageList =
ng.core.Component({
selector: 'message-list',
template:
'<p>Hello {{name}}</p>' +
'<p>{{ eventEmitter | async}}</p>'
})
.Class({
constructor: function() {
console.log("In MessageList");
/* eventEmitter
.subscribe(
function(data) {
return data;
},
function(err) {
console.log("EventEmitter error");
},
function() {
console.log("Completed eventEmitter");
}
);*/
setInterval(function() {
count++;
eventEmitter.emit("Got an event at " + count);
}, 2000)
this.name = "Test EventEmitter";
}
});
app.StatusPage =
ng.core.Component({
selector: 'status-page',
templateUrl: 'app/statuspage.html',
directives: [MessageList]
})
.Class({
constructor: function() {
}
});
})(window.app || (window.app = {}));
Вы когда-нибудь разрешали это? Я думаю, что у меня такая же проблема. – nathasm
Не уверен eventEmitter может быть визуализирован так: это не похоже на тип string, number, ... Что вы видите, если вы console.log eventEmitter, объект? На этой странице документации https://angular.io/docs/ts/latest/api/core/index/EventEmitter-class.html обсуждается доступ к полезной нагрузке события с параметром $ event. Удачи. –