我正在尝试将工作的 JavaScript 事件监听器移植到 AngularDart。
在 AngularDart 中,我确认(通过警报“ready!”)调用了初始的“app-ready”文档事件监听器,但没有收到后续事件消息。我缺少什么才能让 AngularDart 像 JavaScript 代码一样接收后续事件消息?
下面是一个有效的 JavaScript 事件监听器:
document.addEventListener('app-ready', function() {
app.listen(function(message) {
switch (message.name) {
case "name1":
alert(message.payload.message);
break;
case "name2":
alert(message.payload.message);
break;
}
});
});
下面是我将上述 JavaScript 移植到我的 AngularDart 中的尝试:
import 'dart:js';
import 'dart:html';
import 'dart:async';
class AppComponent implements OnInit {
ngOnInit() async {
document.on["app-ready"].listen((CustomEvent message) {
context.callMethod('alert', ['ready!']);
app.listen(_eventReady(message));
});
}
Future _eventReady(CustomEvent message) async {
var messageEvent = new JsObject.fromBrowserObject(message);
if (messageEvent['name'] == "name1") {
context.callMethod('alert', [messageEvent['payload']['message']]);
}
if (messageEvent['name'] == "name2") {
context.callMethod('alert', [messageEvent['payload']['message']]);
}
}
}
最佳答案
您应该能够在第一部分中使用 dart:html
:
import 'dart:html';
void main() {
document.on['app-ready'].listen((event) {
// ...
});
}
我需要更多背景信息来帮助您解决第二个问题。
关于javascript - 来自 JS 事件的 AngularDart CustomEvent 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45267972/