Extjs 4.1 - 如何使用UX组件列

时间:2013-08-13 01:46:38

标签: extjs extjs4.1

我在 http://skirtlesden.com/ux/component-column 看到教程
我做了一个像

这样的演示项目

演示
| -index.html
| -Component.js
| -CTemplate.js

这是我的index.html

    Ext.Loader.setConfig({enabled: true});
    Ext.require([
        'Component'
    ]);

Ext.onReady(function() {

    // create the grid
    var grid = Ext.create('Ext.grid.Panel', {
        title:'Straw Hats Crew',
        width:500,
        height:180,
        stripeRows: true,
        renderTo: Ext.getBody(),
        store: Ext.create('Ext.data.ArrayStore', {
            fields: [
                {name: 'name'}
            ],
            data: [
                ['Monkey D Luffy'],
                ['Roronoa Zoro'],
                ['Sanji'],
                ['Usopp'],
                ['Nami']
            ]
        }),
        columns: [
            {
                header: 'Name', 
                width: 100, 
                dataIndex: 'name',
                xtype: 'componentcolumn', 
                renderer: function(name, meta, record) {
                    return { 
                        value: name, 
                        xtype: 'textfield', 
                        listeners: { 
                            inputEl: { 
                                keydown: function(ev) { 
                                    ev.stopPropagation(); 
                                } 
                            } 
                        } 
                    }; 
                } 
            }
        ]
    });
});

我的Component.js

Ext.define('Skirtle.grid.column.Component', {
    alias: 'widget.componentcolumn',
    extend: 'Ext.grid.column.Column',
    requires: ['CTemplate'], // modify
    ...

我的CTemplate.js

Ext.define('Skirtle.CTemplate', {
    extend: 'Ext.XTemplate',
    ....

但没有任何效果?如何解决这个问题谢谢

1 个答案:

答案 0 :(得分:2)

您需要使用Firebug查看您的页面并查看已加载的脚本。我怀疑您可能需要在Loader配置中设置组件脚本的路径。像这样:

Ext.Loader.setConfig({
    enabled : true, 
    paths: {
        'Ext.ux': 'js/extjs/ux',           
        'Skirtle.grid.column.Component':'js/extjs/ux/SkirtleComponentColumn.js', 
        'Skirtle.CTemplate'            :'js/extjs/ux/SkirtleCTemplate.js'
    }
});
Ext.require([
    'Skirtle.grid.column.Component'
]);

如果您在firebug NET选项卡中看到它尝试加载这些文件但转到错误的位置导致404,则修改您的路径。