2017-05-03 67 views
1

我有一个包含列表的飞镖对象。简单地说:在列表中创建更改的监听器

class Test extends PolymerElement{ 
    List list = []; 

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

,我想实现另一个对象名单上的监听:

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

所以对象从DOM的任意不等阶吸气检索。

有没有办法观察父母的变化?我试过如下:

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

我有下划线,因为它是私有的,心不是暴露在DOM或什么...但名单本身心不是一个属性,因此它不通知或任何东西。

我一直希望有办法为它做某种监听。

我想要的最后状态是我想在父项中添加一个函数,只要将一个项添加到列表中,并且只有对上面定义的子对象的引用。即使这个_data是通过聚合物填充的,因为这根本不触及属性,答案可能只是纯粹的飞镖。

回答

0

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

您应该将notify添加到list财产Test并将其绑定到listenerClass中的财产。然后观察该变量。

但是可能你会有更好的运气ObservableList和使用autonotify更简单的方法来使用聚合物飞镖项目的可观察性。