来自JS Event

时间:2017-07-23 17:29:00

标签: javascript dart angular-dart dom-events dart-html

我试图将一个有效的JavaScript事件监听器移植到AngularDart。

在AngularDart中,我确认(通过警告"准备就绪!")初始应用程序准备好'调用document事件侦听器,但不接收后续事件消息。我错过了哪些允许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']]);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您应该可以在第一部分使用dart:html

import 'dart:html';

void main() {
  document.on['app-ready'].listen((event) {
    // ...
  });
}

我需要更多的背景来帮助你完成第二次。