繁体   English   中英

sencha触摸面板中未加载列表

[英]list isn't loading in panel in sencha touch

我正在尝试在Panel加载List ,但出现以下错误

Uncaught TypeError: Cannot call method 'substring' of undefined 

这是我的ProfileContainer.js ,其中包含List

Ext.define('demo.view.ProfileContainer', {
    extend: 'Ext.Panel',
    xtype: 'profilecontainer',
   // requires: [ 'Ext.TitleBar', 'demo.view.ProfileList' ],
    requires: [ 'Ext.TitleBar' ],
    config: {
        items: [{
            xtype: 'titlebar',
            title: 'demo',
            cls: 'bms-bg'
        }, {
            xtype: 'profilelist'
        }]
    }
});

这是ProfileList.js的代码

Ext.define('demo.view.ProfileList', {
    extend: 'Ext.dataview.List',
    alias: 'widget.profilelist',
    requires: ['demo.store.ProfileStore'],
    config: {
        store: 'ProfileStore',
        itemTpl: '{name}',
    }
});

这是我的ProfileStore.js

Ext.define('demo.store.ProfileStore',{

    extend:'Ext.data.Store',

    config: {
        model: 'demo.model.ProfileModel',
        data:[

            { name: 'John Rambo' },
            { name: 'Brad Pitt'}

        ]
    }
});

ProfileModel.js

Ext.define('demo.model.ProfileModel', {
    extend: 'Ext.data.Model',
    config: {
        fields: [

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

但是我的列表没有加载到面板中,并且出现上述错误

xtypes是别名定义为widget

因此,您需要像这样定义它们:

alias:'widget.profilecontainer',

要么

alias:'widget.profilelist',

有关requireuses一些信息:

您的类之间有需要解决的依赖关系。 这通常是由buildtool完成的,或者如果您不是自己运行的话。

依赖关系是您使用require或在require uses require可能受到严格威胁的原因之一,因为它确保在require就立即在那里

这是一个区别:因为如果您延迟加载,这是无效的。 此时,在定义了类之后,所需的类将可用。 生成工具会清理此内容,将所需的类放在类定义之前

uses可以视为失败,因为它仅确保在调用Ext.onReady时该类存在。

通常,这不会让您头痛,但是如果类定义要求在定义时解析依赖项,则在加载花边时会炸毁它。 如果现在是导致此问题的依赖项(xtype),则可以尝试使用手动加载它

Ext.require('class'); 

需要放在类定义之前。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM