在列表中创建更改的监听器

时间:2017-05-03 14:51:47

标签: dart polymer-1.0 dart-polymer

我有一个包含列表的dart对象。简单地说:

class Test extends PolymerElement{
  List list = [];

  addTask(item){
    list.add(item);
  }
}

我想在另一个对象的列表中实现一个监听器:

class listenerClass extends PolymerElement {
  Test get _data => $['Object'];
}

因此,使用getter从dom中检索对象。

有没有办法观察父母的变化?我尝试了以下方法:

@Observe("_data.list")
dataListChanged(_,__){
  var item = _data.list.last;
  //do magic with item.
}

我有下划线,因为它是私有的,不会暴露给Dom或任何东西......但是列表本身不是属性所以它不通知或任何东西。

我希望有办法为它做某种倾听。

我想要的endstate是每当项目被添加到列表时我想在父项中触发一个函数,只有对上面定义的子对象的引用。尽管这个_data是通过聚合物填充的,但由于这根本不是触摸属性,所以答案可能只是纯粹的飞镖。

1 个答案:

答案 0 :(得分:0)

这不是聚合物的工作原理。 Polymer框架无法知道您在类中定义了一个getter并发出了正确的通知。

您应该将list添加到Test的{​​{1}}属性,并将其绑定到listenerClass中的媒体资源。然后观察那个变量。

但是你可能会更好地使用ObservableList并使用autonotify来更简单地使用聚合物飞镖项目的可观察性。