2014-01-24 42 views
5

我目前正在使用Google Polymer構建控件。我想知道是否有可能從元素外部聽取房地產變化事件。我目前使用的解決方法是在調用propertyChanged方法時觸發顯式事件,以便從其他元素偵聽。Google聚合物:聆聽元素外部的財產變化

// Property change in child element 

Polymer('some-input', { 
    valueChanged: function() { 
     this.fire('valueChanged', this.value) 
    } 
}); 

[...] 

// Listening in the parent element 
ready: function() { 
    this.$.someinput.addEventListener('valueChanged', function(evt) { 
     var value = evt.detail; 
     [...] 
    }); 
} 

您是否知道我是否可以直接收聽財產變更事件?

感謝, 佩德羅

回答

7

如果你父元素是<polymer-element>,一個簡單的方法內「溝通」的元件之間 是使用數據綁定上的published properties

<parent-element value="{{val}}"> 
    <some-input value="{{val}}"></some-input> 
</parent-element> 

我們考慮這是「聚合物」方式來做事情,因爲它是非常聲明性的,並且利用了數據綁定等功能。

如果父項不在Polymer元素中,則可以按照您的建議使用事件委託 。我寫了一篇關於分享信息的不同方法的文章 您可能會感興趣的內容:Communication & Message Passing

+1

鏈接已死:( – leech