如何在聚合物 - 飞镖行为混合物中设置属性?

时间:2016-06-08 07:58:24

标签: dart-polymer

以下示例取自聚合物飞镖documentation on behaviors。它使用了set中的toggleHighlight方法。我不明白这是怎么可能的,因为set没有在任何地方定义。

@behavior
abstract class HighlightBehavior {
  @Property(notify: true, observer: 'highlightChanged')
  bool isHighlighted = false;

  static created(instance) {
    print('Highlighting for $instance enabled!');
  }

  @Listen('click')
  toggleHighlight(_, __) {
    set('isHighlighted', !isHighlighted);
  },

  @reflectable
  highlightChanged(bool newValue, _) {
    toggleClass('highlighted', newValue);
  }
}

如何在触发所有使数据绑定工作的功能的行为中设置聚合物属性?

行为是否应该实现PolymerBase以便能够使用set - 方法?快速测试表明,set在行为实现PolymerBase时有效。但这不是它的记录方式。我可以通过实施PolymerBase

来引发一些不必要的副作用

1 个答案:

答案 0 :(得分:0)

HighlightBehavior是抽象的,因此通过继承获得真实实例。从文档

class MyElement extends PolymerElement with HighlightBehavior {
  MyElement.created() : super.created();
}

PolymerElement扩展PolymerBase,提供set方法。