如何从polymer.dart中的核心信号事件中访问细节?

时间:2015-06-16 00:06:02

标签: dart dart-polymer

我正在使用polymer.dart中的网络应用程序。当我使用核心信号时,我无法访问细节。这是我正在使用的一些代码......

main_app.dart

class MainApp extends PolymerElement {

  onClick(Event event, var detail, Node sender) {
    print('button clicked');
    fire("core-signal",  detail:{'name':'button-click', 'data':0});
  }

  ready() { 
    super.ready();
  }
}

canvasContainer.html

<link rel="import" href="../../packages/polymer/polymer.html">
<link rel="import" href="../../packages/core_elements/core_signals.html">

<polymer-element name="canvas-container">
  <div>
    <template>
      <core-signals on-core-signal-button-click="{{testAction}}"></core-signals>
      <div>
        <canvas id="canvas"></canvas>
      </div>
    </template>
  </div>
  <script type="application/dart" src="canvasContainer.dart"></script>
</polymer-element>

canvasContainer.dart

class CanvasContainer extends PolymerElement {
 // more code up here, but irrelevent
 testAction(Event e, var detail, Node sender) {
    print('event has been received');
    print(detail);
    context.moveTo(0, 0);
    context.lineTo(1000, 1000);
    context.stroke();
  }
}

MainApp收到按钮点击,并发送“核心信号”事件。 但是在canvasContainer中,事件确实收到了,但是当我打印细节时,它只是说“0”。任何对这个问题的见解都表示赞赏。

1 个答案:

答案 0 :(得分:0)

核心信号的工作方式,详细信息对象的data键实际上被设置为事件的detail。然后使用name属性来构建事件类型(它将是core-signal-$name)。

请参阅此处的文档https://github.com/Polymer/core-signals/blob/master/core-signals.html#L79