不能在ExtJS中使用Store with Template

时间:2014-02-13 14:24:24

标签: javascript extjs

我有以下型号:

Ext.define('RateManagement.model.Service', {
    extend: 'Ext.data.Model',

    fields: [
        { name: 'name', type: 'string' }
    ]
});

而且,我有以下商店:

Ext.define("RateManagement.store.ServiceStore", {
    extend: 'Ext.data.Store',
    model: 'RateManagement.model.Service',
    autoLoad: true,
    data: [
        {
            name: 'Test Service'
        }
    ]
});

然后我创建一个这样的模板:

var tpl2 = new Ext.XTemplate(
    '<a href="#">{name}</a>'
).compile();

而且,我最终尝试在我的窗口中使用Store和Template,如下所示:

var win = new Ext.Window({
    el:'hello-win',
    //layout:'fit',
    width:500,
    title: 'View All Services',
    height:300,
    closeAction:'hide',
    plain: true,

    items: [
        {
            xtype: 'textfield',
            enableKeyEvents: true,
            listeners: {
                keyup: function(c) {
                    console.log(c.getValue());                       
                }
            }
        },
        {
            xtype: 'panel',
            //title: 'test',
            preventHeader: true,
            height: 100,
            bodyPadding: 10,
            tpl: tpl2,
            store: RateManagement.store.ServiceStore
            //data: data
        }
    ],

    buttons: [{
        text:'Submit',
        disabled:true
    },{
        text: 'Close',
        handler: function(){
            win.hide();
        }
    }]
});

但是,“测试服务”链接永远不会出现在我的窗口中,并且控制台中没有错误。

我做错了什么?

感谢。

修改:使用最新代码更新。

items: [
    {
        xtype: 'textfield',
        enableKeyEvents: true,
        listeners: {
            keyup: function(c) {
                console.log(c.getValue());                       
            }
        }
    },
    {
        xtype: 'dataview',
        itemSelector: 'a.serviceLink',
        tpl: tpl2,
        store: RateManagement.store.ServiceStore
        //data: data
    }
],

1 个答案:

答案 0 :(得分:2)

XTemplate工作正常(example),但您未在面板中传递任何data

tpldata配置一起使用。

编辑:

您需要使用商店的实例。

示例:http://jsfiddle.net/k4ggq/