Extjs4 MVC Controller使用方法


這篇文章主要說一下Extjs MVC模式中controller類的使用方法。

很清楚,controller主要幫助我們實現頁面中事件的控制,如下:

1、實現對頁面中某個元素觸發某個事件:將上一篇中的controller改成如下:

controller代碼
 1 Ext.define('MVC.controller.MVCS', {
 2     extend: 'Ext.app.Controller',
 3 
 4     init: function() {
 5         this.control({
 6             'viewport > panel' : {
 7                 render : this.onPanelRendered
 8             }
 9         });
10     },
11     onPanelRendered: function() {
12         console.log('The panel was rendered');
13     }
14 });

如上,this.control的功能就是查找到頁面中的某個元素,單引號中的意思是頁面中viewport中的panel元素,render代表當panel渲染完成后出發的事件,后邊為我們寫的事件。

我們可以測試一下在頁面中生成多個panel,app.js改成如下:

app.js
 1 Ext.application({
 2     name: 'MVC',
 3 
 4     appFolder: 'mvc',
 5 
 6     launch: function() {
 7         Ext.create('Ext.container.Viewport', {
 8             layout: 'fit',
 9             items: [
10                 {
11                     xtype: 'panel',
12                     title: 'Users',
13                     html : 'List of users will go here'
14                 },
15               {
16                     xtype: 'panel',
17                     title: 'second',
18                     html : 'Test second'
19                 }
20             ]
21         });
22     }
23 });

結果如下:

通過開發工具我們發現輸出了兩次'The panel was rendered',表明我們的controller對viewport中的所有panel元素起了作用。

2、如果相對某一個元素起作用,那么做法如下:

' viewport panel[id = panel1]' : {
        		render : this.onPanelRendered
        	}

  controller的this.control中的代碼改成如上,意思是viewport中的panel中的id為panel1的元素。

結果:

表明我們的controller對panel1起了作用。

下一篇將view,同時看一下controller和view的搭配使用方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM