【问题标题】:Dart Cross-Polymer Action ListernersDart Crosspolymer 动作监听器
【发布时间】:2014-11-23 01:43:47
【问题描述】:

我定义了两个飞镖聚合物组件:一个输入和一个列表

这看起来有点像这样:

@CustomTag('input-button')
class Input extends PolymerElement {

  @observable String value = '';
  Input.created() : super.created();

  void blah(Event e, var detail, Node target) {

      someMethodCallToTheOtherObject(value);
  }
}

和其他元素:

@CustomTag('page-content')
class PageContent extends PolymerElement {

  final List<String> values = stuff;

  PageContent.created() : super.created();

  someMethodCallListerningForEventInOtherObject(String value) {
    values.add(value);
  }
}

如代码所示,我正在尝试设置 ActionListerner,以便当在第一个按钮对象中“触发”一个方法时,它会使用给定参数调用第二个对象中的方法。

我知道这可能是一些基本的方面,但我还没有看到这个概念在任何地方都有很好的记录。如果您能提供任何意见来为我指明正确的方向,我们将不胜感激。

谢谢!

【问题讨论】:

  • 欢迎来到 StackOverflow。请编辑您的帖子以包含实际问题。更具体的问题通常会得到最佳答案。
  • 了解这些元素在 HTML 中的放置方式会很有帮助。一个元素在另一个的 ShadowDOM 中,还是一个是另一个的子元素,或者它们都在另一个 Polymer 元素的 ShadowDOM 中,或者它们都只是在入口页面 HTML 中?
  • 我想更直接的问题是:如何处理聚合物飞镖元素的两个实例之间的相互作用?但幸运的是,Günter,您的代码示例正是我想要的!谢谢!

标签: dart actionlistener dart-polymer


【解决方案1】:

您可以查询一个元素并添加一个事件监听器

(querySelector(' /deep/ page-content') as PageContent)
    .someMethodCallListerningForEventInOtherObject(value);

as PageContent 不是必需的,但它启用自动完成。
您还需要导入包含PageContent 类的文件才能完成这项工作。

或者您可以使用 core-signals 之类的元素或许多其他可能的变体,具体取决于您的元素的组织方式(请参阅我的 cmets 来回答您的问题)。

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 2013-12-24
    • 2011-09-26
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多