3

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

我的列表:

final ObservableList masterList = toObservable([]);

我的吸气剂:

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

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

4

1 回答 1

2

用于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 将运行)。

于 2013-09-24T01:08:04.427 回答