我有来自Polymer和Dart的可观察列表。我希望从列表中添加或删除某项时运行 setter/getter 。我怎么做?
我的列表:
final ObservableList masterList = toObservable([]);
我的 setter/getter :
List get subList => masterList.where((item) => item.isDone);
当我从
masterList
添加或删除时,我希望subList
更新 View 。 最佳答案
使用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将运行)。关于dart - 在Dart的可观察列表中添加或删除某些内容时,如何通知我?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18971387/