我有来自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/

10-10 18:05