javascript - 来自 JS 事件的 AngularDart CustomEvent 监听器

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

我正在尝试将工作的 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/

相关文章:

dart - 将事件从Angular.dart View 传递回 Controller /组件代码

javascript - OwlCarousel2 动画点 onChange

javascript - vbox内的extjs布局滚动

javascript - 如何格式化数组中的多个 JSON 对象

Flutter – 连续两个文本,左边一个优雅地溢出

dart - AngularDart:如何在AngularJS中强制类似于$ digest的页面重新渲染?

javascript - highcharts 打印图表/图表上下文菜单不可点击

flutter - 了解Fluff中的ScopedModel和状态

flutter - 如何同时使用多种字体家族用于多种语言?

dart - 如何在组件外部访问AngularDart组件属性(NgOneWay),例如。在页面上?