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

时间:2013-08-31 16:19:07

标签: dart dart-polymer

我想使用模板绑定传递函数/方法引用。 这有用吗?我做错了什么?

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

...                             ...

my_component.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        
  }
}

1 个答案:

答案 0 :(得分:1)

我必须按以下方式更改模型

class Model() {
  var onSignOutCallback;

  Model(){
    onsignOutCallback = signOutCallback;
  }

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

目前似乎无法像在Polymer元素中那样直接在HTML中引用方法。 将方法分配给模型中的字段并引用HTML中的字段可以正常工作。