2016-09-22 61 views

回答

3

可以轻松地动态地添加的观察者,无论是由:

this._addObserverEffect("property", observerFunction); 

this._addComplexObserverEffect("dataChanged(data.*)"); 

去除更困难,聚合物不提供这样做的功能。虽然你可以在_propertyEffects阵列中搜索它,但我不会推荐它。也许只是在你的观察者函数中检查它是否仍然有效,如果没有,就返回。

0

你也许可以试试这个方法: 与配置数据财产元素通知:真正,这样你就可以添加一个侦听到的变化与纯JS

var element=document.querySelector("#YOUR-ELE-ID"); 
element.addEventListener("data-changed", function(e) { 
//triggered when data property changes 
}); 

https://www.polymer-project.org/1.0/docs/devguide/properties#notify

并删除您可以拨打的绑定听众removeEventListener

https://developer.mozilla.org/de/docs/Web/API/EventTarget/removeEventListener

实施例1 - 平原JS:

document.addEventListener('WebComponentsReady', function(e) { 
    var element=document.querySelector("#YOUR-ELE-ID"); 
    element.addEventListener("data-changed", function(e) { 
    //triggered when data property changes 
    }); 
}); 

实施例2 - 在定制元素:

//...element definition... 
ready: function() { 
    var element=document.querySelector("#YOUR-ELE-ID"); 
    element.addEventListener("data-changed", function(e) { 
    //triggered when data property changes 
    }); 
}