有沒有辦法查詢「up」?我在一個組件中,並想用control()註冊監聽器的父母事件。這需要一個查詢,讓我成爲我的主視圖的父母。具有ExtJS4的父級的ComponentQuery?
回答
在ExtJS4中,您可以使用Ext元素中的'up()'。
】這個params是要找到e.g父元素的字符串:
var parentEl = Ext.get('childID').up('div.parentClass');
如果你提供有關部件的結構的一些細節/元素,我可以給它應該適應一個具體的例子。
編輯:要顯示來自一個組件
var myComponent = // however you've got it
var theParentEl = myComponent.getEl().up('div.parentClass');
謝謝。我知道'up()'方法,但是我需要這個功能作爲組件查詢選擇器。 –
從組件中,您可以使用getEl()來獲取包含的元素(然後使用所描述的up方法),也可以沿着使用Component.findParentByType(xtype)的路線返回Ext容器。 – dougajmcdonald
所以,上升只是可能的方法?像「a
通常up('PARENTCLASS')
去「了」足夠你正在試圖做什麼。這是我做了代碼,以便元素生成它們在表單事件:
items: [
...
{ xtype: 'checkbox', listeners: {
change: function() { this.up('window').fireEvent('checkboxchanged'); }
}}
...
]
據我瞭解,你要聽從子組件的控制器控制功能具體由某個組件的父調度的事件。
沒有像'parent < component'這樣的查詢選擇器,您可以將它放在子控制器的控制函數中來監聽父事件。
通常我只是將父視圖添加到孩子的控制器,然後你可以聽它的事件。但我認爲你沒有這樣做,因爲你正試圖委託給不同的控制器或其他東西。
無論何時發生父事件,您都可以觸發子組件中的事件。父控制器裏面,你可以做這樣的:
var child = parent.down('child');
child.fireEvent('myOwnEventName', arg1, arg2, arg3, etc);
然後你會添加一個處理的子控制器的控制功能來運行你想爲它的邏輯「myOwnEventName」。
如果家長沒有控制器,那麼您應該在父控制器中添加父組件作爲視圖。
Sencha幫助說:「候選組件的成員表達式可以被測試,如果表達式返回一個真值,候選組件將被包含在查詢中:」在http://docs.sencha.com/ext-js/4-0/#!/api/Ext.ComponentQuery幫助中。
我花了一段時間來實現我可以做我的控制器中的以下內容:
this.control({
'window{down("testcomp")}[down]': { beforedestroy: this.doNotCloseIfUnsaved }
});
使用{}操作,我們可以調用的任意代碼。 效率觀點真的不好,但它完成了工作。我不得不添加[down],因爲它從右向左運行組件查詢,所以我們必須確保down()存在,然後再嘗試運行它(在每個組件上)。因此,我能夠將一個事件附加到我的組件的任何窗口。
當然,如果你想確保它是直接的孩子而不是下面的任何地方,也可以使用其他函數,比如child()而不是down()。
霍利莫莉 - 我不知道你可以做到這一點。如果你問我,它有點難以理解。 – dbrin
- 1. document.Body ComponentQuery
- 2. 特定listitem的ComponentQuery
- 3. 如何設置具有特定子級的父級CSS類
- 4. ExtJS的ComponentQuery查詢選擇
- 5. 如何查找具有特定父級的所有提交?
- 6. 工具欄在extjs4
- 7. 無法獲取具有抽象父級的子級嵌套類的字段
- 8. 分層數據庫,多個表或具有父級ID的列?
- 9. D3圖形佈局 - 具有多個父級的樹結構
- 10. 獲取具有相同父級的HTML節點 - JAVA
- 11. 從一個表中選擇具有父級名稱的類別
- 12. 如何選擇具有特定ID的父級圖像元素?
- 13. XSLT添加一個具有升序號的父級和屬性
- 14. 如何查找具有特定父級的元素?
- 15. 具有固定大小(大於父級)的隱形webview
- 16. 如何在jQuery中找到具有已知類的父級?
- 17. jquery - 獲取父級的父級?
- 18. 創建具有子女出席驗證的父級和子級工廠女生
- 19. Rails/Cocoon:link_to_add_association父級的父項
- 20. ExtJS4 rtl工具欄問題
- 21. ExtJS4工具欄問題
- 22. 選擇具有特定ID的某些類和父級的所有元素
- 23. 如何隱藏單擊的元素,當所有具有相同的父級
- 24. 帶OpenLayers的ExtJS4工具條代碼
- 25. ExtJS4中的分頁工具欄事件
- 26. Jquery .children() - 父級擁有獨特的類,子級具有非唯一類,選擇子級
- 27. Node.js的具有多級SQL
- 28. 篩選出具有某個類的父級(在任何級別)的jQuery結果集中的所有元素
- 29. 獲取沒有子域的父級document.domain
- 30. 有兩個父級別的activerecord模型
每個問題包含80%的答案:) ...() – dbrin