【发布时间】:2017-12-08 16:47:02
【问题描述】:
对于我的 Polymer 应用程序,我需要一个具有两种不同风格的 observable,例如作为整数值和字符串值。我使用 getter 和 setter 来封装状态和内部表示。通过这样做,我必须为每个 setter 中的每个 observable 实现 notifyPropertyChange,这会导致很多容易出错的管道代码。例如 如果必须使用,我需要两次 notifyPropertyChange-Statements 两种风格 4 种口味,我必须使用 4*4 = 16 个 notifyPropertyChange-Statements。我已经修改了点击计数器示例来说明这一点:
@CustomTag('click-counter')
class ClickCounter extends PolymerElement {
int _count;
@observable int get count => _count;
@observable set count(int val) {
notifyPropertyChange(#count,_count,val);
_count = notifyPropertyChange(#strcount,_count,val);}
@observable String get strcount {
print("TOSTRING "+_count.toString());
return _count.toString();}
@observable set strcount(String val) {
notifyPropertyChange(#strcount,_count,int.parse(val));
_count = notifyPropertyChange(#count,_count,int.parse(val));}
ClickCounter.created() : super.created() {
}
void increment() {
count++;
}
}
如果没有那么多 notifyPropertyChange-Statements,有没有更好的方法来实现这一点?
问候
马库斯
【问题讨论】:
标签: dart dart-polymer