2016-09-22 89 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 
    }); 
}