我试图找出为什么在模板中没有呈现可观察事件的原因。我正在努力帮助我的一个同事。他正在使用Angular 2进行Electron项目,并使用JavaScript而不是TypeScript。这很痛苦,希望我们很快将其转换为TypeScript。
变量' 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 = {}));
答案 0 :(得分:0)
所以我确实解决了这个问题。问题是我在我的角度2代码中得到了一个Electron ipc消息,并且区域系统无法处理来自另一个线程的调用。由于代码不在区域中,因此未检测到事件。我把代码包装在ngzone中。