我有一个来自Polymer和Dart的可观察列表。我希望在列表中添加或删除某些内容时运行getter。我该怎么做?
我的清单:
final ObservableList masterList = toObservable([]);
我的吸气者:
List get subList => masterList.where((item) => item.isDone);
当我从masterList
添加或删除时,我希望subList
更新视图。
答案 0 :(得分:1)
使用changes
侦听对可观察对象的任何更改。您可以将其放入created()
生命周期回调:
class Example extends PolymerElement with ObservableMixin {
final ObservableList masterList = toObservable([]);
created() {
masterList.changes.listen((List<ChangeRecord> changes) {
notifyProperty(this, const Symbol('subList'));
}
}
List get subList => masterList.where((item) => item.isDone);
}
重要的是要记住changes
正在关注来自masterList
的添加和删除。您可能不希望使用典型的bindProperty
模式,因为它只是监视变量本身的变化(如果变量设置为不同的对象,则bindProperty将运行)。