如何在Dart中的可观察列表中添加或删除某些内容时收到通知?

时间:2013-09-24 01:08:04

标签: dart dart-polymer

我有一个来自Polymer和Dart的可观察列表。我希望在列表中添加或删除某些内容时运行getter。我该怎么做?

我的清单:

final ObservableList masterList = toObservable([]);

我的吸气者:

List get subList => masterList.where((item) => item.isDone);

当我从masterList添加或删除时,我希望subList更新视图。

1 个答案:

答案 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将运行)。