需要将ExtJs示例应用程序转换为MVC应用程序

需要将ExtJs示例应用程序转换为MVC应用程序,extjs,extjs4,extjs-mvc,Extjs,Extjs4,Extjs Mvc,我有一个问题,这个例子看到这个链接 我想在MVC应用程序中转换。所以,任何人都可以帮助我。首先,请将您的模型放在应用程序/模型文件夹中 Ext.define('AppName.model.Employee', { extend: 'Ext.data.Model', fields: [ {name: 'rating', type: 'int'}, {name: 'salary', type: 'float'}, {name: 'name'

我有一个问题,这个例子看到这个链接


我想在MVC应用程序中转换。所以,任何人都可以帮助我。

首先,请将您的模型放在应用程序/模型文件夹中

Ext.define('AppName.model.Employee', {
    extend: 'Ext.data.Model',
    fields: [
       {name: 'rating', type: 'int'},
       {name: 'salary', type: 'float'},
       {name: 'name'}
    ]
});
并存储在应用程序/应用商店文件夹中

Ext.define('AppName.store.Employee', {
    extend:'Ext.data.Store', 
    buffered: true,
    pageSize: 5000, 
    model: 'Employee',
    proxy: { type: 'memory' }
});
以及应用程序/视图文件夹中的网格视图

Ext.define('AppName.view.EmployeeGrid', {
    alias:'employeegrid',
    extend:'Ext.grid.Panel', 
    width: 700,
    height: 500,
    title: 'Bufffered Grid of 5,000 random records',
    store: 'Employee',
    loadMask: true,
    disableSelection: true,
    viewConfig: { trackOver: false }, 
    columns:[{
        xtype: 'rownumberer',
        width: 40,
        sortable: false
    },{
        text: 'Name',
        flex:1 ,
        sortable: true,
        dataIndex: 'name'
    },{
        text: 'Rating',
        width: 125,
        sortable: true,
        dataIndex: 'rating'
    },{
        text: 'Salary',
        width: 125,
        sortable: true,
        dataIndex: 'salary',
        align: 'right',
        renderer: Ext.util.Format.usMoney
    }]
}); 
以及应用程序/控制器文件夹中的控制器

Ext.define('AppName.controller.Employee',{
    extend:'Ext.app.Controller',
    stores:['Employee'],
    views:['EmployeeGrid'],
    refs:[
        {ref:'employeeGrid',selector:'employeegrid'}        
    ],
    init:function(){
        var me = this;
        me.getEmployeeStore().loadData(me.createFakeData(5000));        
    },
    createFakeData:function(count) {
        var firstNames   = ['Ed', 'Tommy', 'Aaron', 'Abe', 'Jamie', 'Adam', 'Dave', 'David', 'Jay', 'Nicolas', 'Nige'],
            lastNames    = ['Spencer', 'Maintz', 'Conran', 'Elias', 'Avins', 'Mishcon', 'Kaneda', 'Davis', 'Robinson', 'Ferrero', 'White'],
            ratings      = [1, 2, 3, 4, 5],
            salaries     = [100, 400, 900, 1500, 1000000];

        var data = [];
        for (var i = 0; i < (count || 25); i++) {
            var ratingId    = Math.floor(Math.random() * ratings.length),
                salaryId    = Math.floor(Math.random() * salaries.length),
                firstNameId = Math.floor(Math.random() * firstNames.length),
                lastNameId  = Math.floor(Math.random() * lastNames.length),

                rating      = ratings[ratingId],
                salary      = salaries[salaryId],
                name        = Ext.String.format("{0} {1}", firstNames[firstNameId], lastNames[lastNameId]);

            data.push({
                rating: rating,
                salary: salary,
                name: name
            });
        }
        return data;
    }         
});

首先,在应用程序/模型文件夹中选择您的模型

Ext.define('AppName.model.Employee', {
    extend: 'Ext.data.Model',
    fields: [
       {name: 'rating', type: 'int'},
       {name: 'salary', type: 'float'},
       {name: 'name'}
    ]
});
并存储在应用程序/应用商店文件夹中

Ext.define('AppName.store.Employee', {
    extend:'Ext.data.Store', 
    buffered: true,
    pageSize: 5000, 
    model: 'Employee',
    proxy: { type: 'memory' }
});
以及应用程序/视图文件夹中的网格视图

Ext.define('AppName.view.EmployeeGrid', {
    alias:'employeegrid',
    extend:'Ext.grid.Panel', 
    width: 700,
    height: 500,
    title: 'Bufffered Grid of 5,000 random records',
    store: 'Employee',
    loadMask: true,
    disableSelection: true,
    viewConfig: { trackOver: false }, 
    columns:[{
        xtype: 'rownumberer',
        width: 40,
        sortable: false
    },{
        text: 'Name',
        flex:1 ,
        sortable: true,
        dataIndex: 'name'
    },{
        text: 'Rating',
        width: 125,
        sortable: true,
        dataIndex: 'rating'
    },{
        text: 'Salary',
        width: 125,
        sortable: true,
        dataIndex: 'salary',
        align: 'right',
        renderer: Ext.util.Format.usMoney
    }]
}); 
以及应用程序/控制器文件夹中的控制器

Ext.define('AppName.controller.Employee',{
    extend:'Ext.app.Controller',
    stores:['Employee'],
    views:['EmployeeGrid'],
    refs:[
        {ref:'employeeGrid',selector:'employeegrid'}        
    ],
    init:function(){
        var me = this;
        me.getEmployeeStore().loadData(me.createFakeData(5000));        
    },
    createFakeData:function(count) {
        var firstNames   = ['Ed', 'Tommy', 'Aaron', 'Abe', 'Jamie', 'Adam', 'Dave', 'David', 'Jay', 'Nicolas', 'Nige'],
            lastNames    = ['Spencer', 'Maintz', 'Conran', 'Elias', 'Avins', 'Mishcon', 'Kaneda', 'Davis', 'Robinson', 'Ferrero', 'White'],
            ratings      = [1, 2, 3, 4, 5],
            salaries     = [100, 400, 900, 1500, 1000000];

        var data = [];
        for (var i = 0; i < (count || 25); i++) {
            var ratingId    = Math.floor(Math.random() * ratings.length),
                salaryId    = Math.floor(Math.random() * salaries.length),
                firstNameId = Math.floor(Math.random() * firstNames.length),
                lastNameId  = Math.floor(Math.random() * lastNames.length),

                rating      = ratings[ratingId],
                salary      = salaries[salaryId],
                name        = Ext.String.format("{0} {1}", firstNames[firstNameId], lastNames[lastNameId]);

            data.push({
                rating: rating,
                salary: salary,
                name: name
            });
        }
        return data;
    }         
});