如何在 polymer-dart 行为混合中设置 属性?
How do I set a property in a polymer-dart behavior mixin?
以下示例取自聚合物飞镖documentation on behaviors。它利用了toggleHighlight
中的方法set
。我不明白这是怎么可能的,因为 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
方法?快速测试表明,当行为实现 PolymerBase
时,set
起作用。但这不是它的记录方式。我可以通过实施 PolymerBase
来引起一些不需要的副作用吗?
HighlightBehavior
是抽象的,所以通过继承得到真实的实例。来自文档
class MyElement extends PolymerElement with HighlightBehavior {
MyElement.created() : super.created();
}
PolymerElement
扩展 PolymerBase
提供 set
方法。
以下示例取自聚合物飞镖documentation on behaviors。它利用了toggleHighlight
中的方法set
。我不明白这是怎么可能的,因为 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
方法?快速测试表明,当行为实现 PolymerBase
时,set
起作用。但这不是它的记录方式。我可以通过实施 PolymerBase
来引起一些不需要的副作用吗?
HighlightBehavior
是抽象的,所以通过继承得到真实的实例。来自文档
class MyElement extends PolymerElement with HighlightBehavior {
MyElement.created() : super.created();
}
PolymerElement
扩展 PolymerBase
提供 set
方法。