我想使用模板绑定(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/