未在 Angular2 模板中呈现的可观察事件
Observable event not rendered in Angular2 template
我试图弄清楚为什么模板中没有呈现可观察的事件。我正在尝试帮助我的一位同事。他正在用 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 = {}));
所以我确实解决了这个问题。问题是我在我的角度 2 代码中收到一条 Electron ipc 消息,并且区域系统无法处理来自另一个线程的调用。 由于代码不在区域中,因此未检测到事件。我将代码包装在一个ngzone中。
相关文章:
- 设置多个观察程序以触发动态事件的角度替代解决方案 - 优化的观察者模式
- 我们可以对可观察流使用高通滤波器来检测抖动事件吗
- knockoutjs上的绑定按键事件,可观察到未填充
- 观察其他场模糊事件
- DOM突变观察器是否比DOM突变事件慢
- 一个控制器如何在 Ember .js 中观察任意控制器/模型上的事件
- 剑道可观察在触发更改事件后不更新
- 删除 DOM 事件观察器
- KnockoutJS observable不观察jQuery的empty()事件
- 停止后观察事件观察
- 如何获取使用 .fromEvent 创建的可观察的事件名称
- 未在 Angular2 模板中呈现的可观察事件
- 观察聚合物上的“结束”媒体事件
- 在观察@each时,知道哪个项目触发了事件
- 使用ARI观察桥梁相关事件
- 角度观察程序和事件侦听程序的执行顺序
- 浏览器中的观察者模式javascript:订阅事件"添加了Dom元素“;并处理这个元素
- 观察事件'Window Onload'在刷新的DIV元素内
- DOM突变观察者:如何支持DOM3突变事件的一个重要用途
- Javascript:同步可观察事件