dart - 将回调函数传递给聚合物元素

标签 dart dart-polymer

我想使用模板绑定(bind)传递函数/方法引用。
这应该工作吗?我究竟做错了什么?

index.dart

@observable
class Model() {
  onSignOutCallback(message) {
    print(message);
  }
}

main() {
  query("#tmpl").xtag.model = new Model(); 
  TemplateElement t = query("#plus-login-tmpl") as TemplateElement;
  t.bindingDelegate = new PolymerExpressions();
}

index.html

...




...

我的组件.html

<polymer-element name="my-component" attributes="sign-out-callback">
  <button on-click="{{signOutCallback}}>Sign out</span>
</polymer-element>

my_component.dart

typedef void OnSignOutCallback(message);

@CustomTag("my-component")
class MyComponent extends PolymerElement with ObservableMixin {
  OnSignOutCallback onSignOutCallback;

  @override
  inserted() {
    super.inserted();
    onSignOutCallback("signed out"); // test if value was assigned        
  }
}

最佳答案

我不得不改变模型如下

class Model() {
  var onSignOutCallback;

  Model(){
    onsignOutCallback = signOutCallback;
  }

  signOutCallback(message) {
    print(message);
  }
}

似乎目前无法像在 Polymer 元素中那样直接在 HTML 中引用方法。
但是,将方法分配给模型中的字段并在 HTML 中引用该字段是可行的。

关于dart - 将回调函数传递给聚合物元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18550184/

相关文章:

dart - 如何随着媒体屏幕尺寸的变化来关闭进纸器?

dart - 如何在 polymer 自定义元素中渲染阴影 DOM

parameter-passing - Dart 将数据传递到动态创建的聚合物元素

drag-and-drop - 如何在 Dart 中使用 core-drag-drop 使聚合物元素可拖动?

dart - 如何在DART_API中从C++调用运算符?

google-maps - Flutter map ,setState 不更新标记和多边形

Flutter:为什么 json_annotation 包没有生成 *.g.dart 文件

dart - 从聚合物 Dart 观察包装

dart - 将 @override 放在我的 PolymerDart 方法中的目的是什么?

dart - 通过 Javascript 函数传递 Polymer 数据绑定(bind)