我有一个来自 Polymer 和 Dart 的可观察列表。当从列表中添加或删除某些内容时,我希望运行 getter。我怎么做?
我的列表:
final ObservableList masterList = toObservable([]);
我的吸气剂:
List get subList => masterList.where((item) => item.isDone);
当我添加或删除时masterList
,我想subList
更新视图。
我有一个来自 Polymer 和 Dart 的可观察列表。当从列表中添加或删除某些内容时,我希望运行 getter。我怎么做?
我的列表:
final ObservableList masterList = toObservable([]);
我的吸气剂:
List get subList => masterList.where((item) => item.isDone);
当我添加或删除时masterList
,我想subList
更新视图。
用于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 将运行)。