从Dart中的嵌套聚合物元素中捕获异常

迈克·米特勒

我不知道如何捕获嵌套元素引发的异常。

我想要的是这样的:

<error-handler>
    <hard-worker></hard-worker>
</error-handler>

例如,该想法是在勤奋的工作中发出REST请求。当然,如果努力工作的人从REST服务器中获取错误,它将进行自己的错误处理。但最后它必须在某处/以某种方式显示错误消息。错误处理程序被认为是向用户显示错误(异常)的人。错误处理程序应该是可变的。例如,可能是错误处理程序日志消息或错误处理程序显示弹出窗口。

迈克·米特勒

我在GitHub上更新了Polymer-Sample。它显示了两种讨论的方法:基于Eventbus的方法(已经存在)和新的DOM-Event方法。(我更喜欢的一种-清洁得多)

工作示例(Chrome)
https://rawgithub.com/MikeMitterer/DART-Sample-PolymerHelloWorld/master/build/index.html

代码:https
//github.com/MikeMitterer/DART-Sample-PolymerHelloWorld/tree/master/web

关于我所做的一些详细信息:
index.html

<!DOCTYPE html>
<html>
<head>
    <link rel="import" href="hello-world/hello-world.html">
    <link rel="import" href="event-handler/event-handler.html">
    <link rel="import" href="stopwatch/stopwatch.html">
    <script type="application/dart">export 'package:polymer/init.dart';</script>
</head>
<body>

    <h1>Hi first world!</h1>
    <!-- event-handler should show some events coming in from hello-world -->
    <event-handler>
        <hello-world></hello-world>
    </event-handler>

    <script src="packages/browser/dart.js"></script>
    </body>
</html>

hello-
world.html如果您单击“触发事件”按钮,则会触发事件。这也可能是错误消息...

<!DOCTYPE html>
<polymer-element name="hello-world">
    <template>
        <button on-click="{{increment}}">Click Me</button>
        <button on-click="{{fireevent}}">Fire an event (received by event-handler)</button>

        <p>Hello from inside a custom element! Clicks: {{count}}</p>
    </template>
    <script type="application/dart" src="hello-world.dart"></script>
</polymer-element>

hello-world.dart

import 'package:polymer/polymer.dart';
import 'package:event_bus/event_bus.dart';
import 'package:PolymerHelloWorld/globaleventbus.dart';
import 'dart:html';
import 'dart:math';
import 'package:json/json.dart' as JSON;

@CustomTag('hello-world')
class HelloWorldElement extends PolymerElement {
    final EventBus _eventbus = new GlobalEventBus();

    @observable int count = 0;

    HelloWorldElement.created() : super.created();

    void increment(Event e, var detail, Node target) {
        count += 1;
        _eventbus.fire(GlobalEventBus.basicClickEvent,"Test");
    }

    void fireevent(Event e, var detail, Node target) {
        final Random random = new Random();
        final Map json = { 'response' : 'Hi, this is a message', 'random' : random.nextInt(100)};

        // Fires a JSON-Message 
        fire("hello-event",detail: JSON.stringify(json));
    }
}

event-handler.html接收“你好事件”的模板

<!DOCTYPE html>
<polymer-element name="event-handler" on-hello-event="{{handleHelloEvent}}">
    <template>
        <style>
            .error { color: red; }
        </style>
        <p class="error">EventHandler (Shows hello-world events!) Message: {{response}}, Random number: {{randomnumber}}</p>
        <content></content>
    </template>
    <script type="application/dart" src="event-handler.dart"></script>
</polymer-element>

event- handler.dart实现在相应模板中定义handleHelloEvent

import 'package:polymer/polymer.dart';
import 'package:json/json.dart' as JSON;

@CustomTag('event-handler')
class EventHandler  extends PolymerElement {

    @observable String response = "";
    @observable int randomnumber = 0;

    EventHandler.created() : super.created();

    void handleHelloEvent(Event e, var detail, Node target) {
        final Map json = JSON.parse(detail);

        response = json['response'];
        randomnumber = json['random'];

        // Log to console 
        print("Received event! $detail");
    }
}

就这样-如果您知道它的工作原理-就像馅饼一样容易!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

请参阅Dart中的同级聚合物元素?

来自分类Dev

ID嵌套模板中的聚合物访问元素

来自分类Dev

聚合物特性不在元素中

来自分类Dev

去除飞镖中的聚合物元素

来自分类Dev

聚合物元素中的getElementById

来自分类Dev

聚合物1.0中的元素特性

来自分类Dev

在Dart中创建聚合物元素的实例,该实例不是HtmlElement

来自分类Dev

动态检测Dart中勾选的复选框/聚合物元素

来自分类Dev

嵌套模板中无法访问聚合物自定义元素属性

来自分类Dev

聚合物元素未从字符串/文本中注册到聚合物中

来自分类Dev

在聚合物元素(聚合物1.2.3)中动态注入共享样式

来自分类Dev

聚合物元素未从字符串/文本中注册到聚合物中

来自分类Dev

在Dart中以编程方式创建聚合物Elements

来自分类Dev

聚合物与主页中的元素未在IE中显示

来自分类Dev

聚合物:将内容嵌套在内容中

来自分类Dev

在聚合物中定位?

来自分类Dev

聚合物-如何从嵌入元素的页面中触发对嵌入到“聚合物”元素中的元素的操作?

来自分类Dev

聚合物,如何选择条件模板中的元素

来自分类Dev

Firefox中未显示聚合物元素

来自分类Dev

dom-if模板中的聚合物1.0选择元素

来自分类Dev

在飞镖中显示纸吐司聚合物元素

来自分类Dev

动态插入的聚合物元素中的数据绑定

来自分类Dev

在angular2中样式化聚合物元素

来自分类Dev

获取事件中单击的聚合物元素

来自分类Dev

聚合物中数组元素的绑定子属性

来自分类Dev

聚合物1.0中的核心支架元素

来自分类Dev

聚合物1.0中未加载纸张元素

来自分类Dev

平滑滚动到div在聚合物元素中

来自分类Dev

无法通过聚合物 2 中的 id 获取元素

Related 相关文章

热门标签

归档