Tôi đang sử dụng ExtJS để xây dựng một cửa sổ có chứa một số bảng như các mục. Một trong những bảng này có chứa một nút.Làm cách nào để tham khảo đối tượng vùng chứa tổ tiên từ điều khiển ExtJS?
Tôi muốn đính kèm trình xử lý vào nút của mình sao cho khi tôi nhấp vào nút, tôi có thể ẩn cửa sổ chứa các bảng được đề cập ở trên và nút này.
Câu hỏi của tôi là: làm cách nào tôi có thể tham chiếu đến cửa sổ chính của nút của tôi KHÔNG tham chiếu cửa sổ theo id? Tôi thực sự muốn có một tham chiếu đến thể hiện Ext.Window và không phải là cá thể Ext.Panel có chứa nút của tôi.
Lưu ý: Tôi không muốn tham chiếu cửa sổ theo id vì tôi đang phân lớp lớp Ext.Window và do đó, id của cửa sổ sẽ không phải lúc nào cũng giống nhau. Tóm lại, tôi đang tạo một lớp Wizard, và khi tôi nhấn nút Cancel của wizard, tôi muốn ẩn cửa sổ wizard chứa nút.
Đây là mã của tôi:
var newWizardWindow = new WizardWindow({
id: 'newWizardWindow',
title: 'New',
items: [
...
],
buttons: [{
text: 'Cancel',
handler: function() {
// REFERENCE WizardWindow instance here.
}
},{
id: 'newWizardPreviousButton',
text: '« Previous',
disabled: true,
handler: newWizardNavigator.createDelegate(this, [-1])
},{
id: 'newWizardNextButton',
text: 'Next »',
handler: newWizardNavigator.createDelegate(this, [1])
}],
listeners: {
…
}
});
Dưới đây là một số ý tưởng tôi đã đưa ra xa như thế nào để ẩn cửa sổ:
- this.ownerCt.ownerCt (điều này là nút). Không thuận lợi như với bản cập nhật trong tương lai cho ExtJS, số lượng cha mẹ giữa cửa sổ và nút có thể thay đổi.
- Bằng cách nào đó lưu trữ một tham chiếu đến thể hiện WizardWindow trong lớp WizardWindow.
- Tìm lớp WizardWindow [CSS] gần nhất trong thời trang jQuery: $ (this) .closest ('. WizardWindow'). Có thể this.findByParentType ('WizardWindow')?
Tôi ước gì tôi có thể đưa ra câu trả lời này là +10 :) –