2011-11-23 39 views
7

Tôi đã xem xét rất nhiều ví dụ về ExtJS 4 MVC, và tất cả chúng đều hiển thị cùng một điều: Ứng dụng tạo ra một khung nhìn, tải trong một khung nhìn, và có một 'bộ điều khiển' được xác định, mà init là bộ điều khiển:ExtJS 4 cách tạo và hiển thị bộ điều khiển/chế độ xem mới từ bộ điều khiển/chế độ xem khác?

Ext.application({ 
    name: 'AM', 

    controllers: [ 
     'Users' 
    ], 

    launch: function() { 
     Ext.create('Ext.container.Viewport', { 
      layout: 'fit', 
      items: [ 
       { 
        xtype: 'userlist' 
       } 
      ] 
     }); 
    } 
}); 

Thats tuyệt vời, nhưng bây giờ hãy nói trong ứng dụng của tôi, tôi muốn một nút chứa trong quan điểm của tôi để mở một bộ điều khiển/xem hoàn toàn mới, bạn làm như thế nào?

Tôi nghĩ rằng những gì tôi đang tìm kiếm là một cách để nói điều gì đó như: - Tạo điều khiển (chạy nó là mã init) - trong các mã điều khiển init, tạo ra các quan điểm và hiển thị nó

Là đúng và làm thế nào để bạn làm điều này?

Tôi muốn làm rõ rằng trong trường hợp của tôi, tôi sẽ cần HAI trường hợp riêng lẻ của kết hợp bộ điều khiển/chế độ xem CÙNG. Ví dụ: tôi có thể có chế độ xem với bảng điều khiển tab và hai tab. Sau đó tôi muốn đặt HAI trường hợp riêng biệt của bộ điều khiển 'Người dùng' và chế độ xem 'user.List' bên trong mỗi tab.

Trả lời

2

Chỉ cần kiểm tra tài liệu của bộ điều khiển mới và xem các lớp học.

Dường như với tôi, bạn luôn có thể tìm thấy chế độ xem cần thiết khi cần. Ví dụ bạn có thể:

//somewhere in controller 
this.getView('Viewport').create(); // or .show() 

việc kiểm tra này và xem lớp phương pháp:

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.app.Controller-method-getView

8

Tôi nghĩ rằng những gì tôi đang tìm kiếm là một cách để nói điều gì đó như: - Tạo điều khiển (chạy mã init của nó) - trong mã init của bộ điều khiển, tạo chế độ xem và hiển thị nó

Trong extjs, all contr ollers được khởi tạo khi ứng dụng được tải. Bạn có thể sử dụng phương thức khởi chạy trong lớp Application để bắt đầu chế độ xem. Và có một bộ điều khiển nghe các sự kiện của chế độ xem đó. Trong một bộ điều khiển, bạn luôn có thể truy cập vào bộ điều khiển khác sử dụng đối tượng application:

this.application.getController('ControllerName1').displayListPanel(options); 

Trong đoạn mã trên, tôi gọi một phương thức displayListPanel có sẵn trong bộ điều khiển ControllerName1. Phương pháp này giữ mã để hiển thị một khung nhìn (một bảng điều khiển lưới) trên màn hình. Tương tự, tôi có thể có các phương thức tạo các khung nhìn giống như một biểu mẫu mới để nhập dữ liệu. Dưới đây là một ví dụ:

this.application.getController('ControllerName1').newDateForm(); 

và Trong phương pháp của tôi:

newDataForm : function() { 

     var view = Ext.widget('form',{title: 'New Data'}); 
     view.show(); 
    }, 
Các vấn đề liên quan