Polymer Dart 1.0.0中@reflectable的用途是什么?

时间:2015-10-13 22:26:37

标签: dart dart-polymer

我已经知道我必须像这样使用@reflectable的一些地方

AddType application/x-httpd-php .html

对于由点击元素触发的事件。

@property String get name Band =>_nameBand;
@reflectable void set nameBand(val) {
   _nameBand = val;
   notifyPath('nameBand', _nameBand;
}

在元素类定义中,您可以在其中定义要在on-click事件上调用的事件处理程序方法。

<paper-button on-click="clicked"></paper-button>

如果没有@reflectable注释,只要点击了纸质按钮,Polymer就无法找到您想要使用的setter或方法。为什么需要@reflectable,因为它的目的是什么?

我意识到我似乎在回答自己的问题,但我希望得到一些澄清。谢谢。

2 个答案:

答案 0 :(得分:6)

除了@Anders的回答......
您需要使用@reflectable注释要将Polymer公开的每个方法用作事件处理程序(on-tap="clickHandler"),或者使用像attribute-name="{{computeValue(someName)}}"这样的函数调用进行绑定。 您还需要注释要绑定到

的模型类中的每个字段
Person extends JsProxy {
  @reflectable String firstName;
  @reflectable String lastName;
}

答案 1 :(得分:5)

没有@reflectable注释,树振动器将丢弃聚合物所需的所有元数据。 Polymer使用https://pub.dartlang.org/packages/reflectable允许它使用有限数量的反射,而不会过多地增加代码大小。