使用型号和商店的Sencha Touch组合框

时间:2014-03-05 09:22:24

标签: extjs sencha-touch

我在模特身上有这个

Ext.define('MyApp.model.job', {
extend: 'Ext.data.Model',
alias: 'model.job',

config: {
    fields: [{
        name: 'name',
        type: 'string'
    }, {
        name: 'value',
        type: 'string'
    }]
}

});

这就是商店

Ext.define('MyApp.store.job', {
extend: 'Ext.data.Store',
alias: 'store.job',

requires: [
    'MyApp.model.job'
],

config: {
    autoLoad: true,

    data: [
    {
        name: '--Please Select--',
        value: ''
    }, {
        name: 'Job 1',
        value: 'Job1'
    }, {
        name: 'Job 2',
        value: 'Job2'
    }, {
        name: 'Job 3',
        value: 'Job3'
    }
    ],

    model: 'MyApp.model.job',
    storeId: 'jobStore'
}

});

这就是视图

                    {
                    xtype         : 'selectfield',
                    name          : 'job',
                    label         : 'Job',
                    displayField : 'name',
                    valueField : 'value',
                    store: 'jobStore'
                }   

但是我在控制台上遇到以下错误 “未捕获的TypeError:无法调用未定义的方法”

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

job商店中,删除不必要的行storeId: 'jobStore',然后在视图编辑商店中删除store: 'job',您的代码就可以正常使用了。 除此之外,我会要求您从代码段中删除几行代码(因为在标准的Sencha编码中,我们遵循某些规则)。

  1. requires: [ 'MyApp.model.job' ],

  2. alias: 'store.job'

  3. alias: 'model.job'

  4. 快乐的编码。 :)

    修改

    在你的应用程序的app.js中,你应该写

    models: ['job'],
    
    stores: ['job']
    

    代替模型和商店。