`
jinhailion
  • 浏览: 46194 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

extjs4.1 mvc

阅读更多
结合ext4.1的英文文档和Extjs4.0学习指南(中文)

目录结构:
项目下放: index.html, app.js, ext-4.1, ext-4.07, page1, app。
app下放 controller, model, store, view。
controller下放Users.js, view下放 user/List.js

==index.html==
<html>
<head>
    <title>Hello Ext</title>
    <link rel="stylesheet" type="text/css" href="ext-4.1/resources/css/ext-all.css">
    <script type="text/javascript" src="ext-4.1/ext-all-debug.js"></script>
    <script type="text/javascript" src="app.js"></script>
</head>
<body>
</body>
</html>

==app.js==
Ext.Loader.setConfig({enabled: true}); 
Ext.application({
    name: 'AM',
    
    appFolder: 'app',
    
    controllers: [
        'Users'
    ],
    
    launch: function(){
        Ext.create('Ext.container.Viewport', {
            layout:'fit',
            //一个对象的话直接用{} ,多个用[{}, {}...]
            items:{
                xtype:'myuserlist'
            }
        });
    }
    
});

==Users.js==
Ext.define('AM.controller.Users', {
    extend:'Ext.app.Controller',
   
    views: [
        'user.List'
    ],
    
    init:function(){
        //这个类集成自Controller, controll函数是Controller的成员函数
        this.control({
            //css选择器
            'viewport>panel':{
                //给页面中选择到的元素对象添加渲染时事件处理
                render: this.onPanelRendered
            }
        });
    },
    
    //自定义当前类的成员函数
    onPanelRendered: function() {
        console.log('The panel was rendered ddd');
        alert('the panel literally was rendered.');
    }
});

==List.js==
Ext.define('AM.view.user.List', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.myuserlist',
    title: 'All Users',
    
    initComponent: function() {
        this.store = {
            fields: ['name', 'email'],
            data: [
                {name: 'Lampard', email:'frank_stanford@gmail.com'},
                {name: 'Drogba', email:'didier_stanford@gmail.com'},
                {name: 'Terry', email:'john_stanford@gmail.com'}
            ]
        };
        
        this.columns = [
            {header:'Name', dataIndex:'name', flex:1},
            {header:'Email', dataIndex:'email', flex:1}
        ];
        
        this.callParent(arguments);
    }
});
分享到:
评论
1 楼 353386051 2012-12-31  
ExtJs菜鸟,表示不会写这样的代码,只会create/new简单的form/panel/grid……求传授

相关推荐

Global site tag (gtag.js) - Google Analytics