有沒有方法可以在元素初始化的時候添加或刪除觀察者? 我可以定義觀察者這樣說:聚合物。動態添加或刪除觀察者的方式
observers: ['dataChanged(data.*)']
我後面能消除這種觀察員或我可以設置比這個觀察者不同的方式?
有沒有方法可以在元素初始化的時候添加或刪除觀察者? 我可以定義觀察者這樣說:聚合物。動態添加或刪除觀察者的方式
observers: ['dataChanged(data.*)']
我後面能消除這種觀察員或我可以設置比這個觀察者不同的方式?
可以輕鬆地動態地添加的觀察者,無論是由:
this._addObserverEffect("property", observerFunction);
或
this._addComplexObserverEffect("dataChanged(data.*)");
去除更困難,聚合物不提供這樣做的功能。雖然你可以在_propertyEffects
陣列中搜索它,但我不會推薦它。也許只是在你的觀察者函數中檢查它是否仍然有效,如果沒有,就返回。
你也許可以試試這個方法: 與配置數據財產元素通知:真正,這樣你就可以添加一個偵聽到的變化與純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
});
}