我有一個爲父級和幾個childComponents像這樣:聚合物1:父組件未從子組件的「分離」方法中偵聽火災事件?
<parent-component>
<child-component> child_1 </child-component>
<child-component> child_2 </child-component>
</parent-component>
爲父級:
Polymer({
is: 'parent-component',
listeners: {
'EVT_CHILD_ATTACHED': 'onChildAttached'
'EVT_CHILD_DETACHED': 'onChildDetached'
},
onChildAttached: function() {
console.log('child elem is ATTACHED');
},
onChildDetached: function() {
console.log('child elem is DETACHED');
}
})
ChildComponent:
Polymer({
is: 'child-component',
attached: function() {
this.fire('EVT_CHILD_ATTACHED');
},
detached: function() {
this.fire('EVT_CHILD_DETACHED');
}
});
成功:添加「新」兒組件添加到父組件中,組件的聚合物生命週期「附加」方法被調用並且事件'EVT_CHILD_ATTACHED'被觸發,並且最終父組件能夠成功地偵聽並記錄'兒童元素被附着'。
失敗:當「現有」兒童組件被刪除,我可以看到,「分離」的方法子成分的聚合物生命週期被稱爲與事件「EVT_CHILD_DETACHED」被觸發爲好。但是父組件的onChildDetached()永遠不會被觸發,也不會顯示日誌。
QN:我要如何父組件反應/聽,當任何的子組件是「分離」?
注意:子組件可以動態添加或者在循環條件或dom-if條件下進行包裝,爲簡單起見,我已經刪除了這些邏輯。
謝謝@alesc您的意見,我已經想出了一個這樣做的方法,而不需要添加父項的引用給孩子。如果有的話讓我知道你的意見。 – user3329460