[英]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',
有关require
和uses
一些信息:
您的类之间有需要解决的依赖关系。 这通常是由buildtool完成的,或者如果您不是自己运行的话。
依赖关系是您使用require
或在require
uses
require
可能受到严格威胁的原因之一,因为它确保在require
就立即在那里
这是一个区别:因为如果您延迟加载,这是无效的。 此时,在定义了类之后,所需的类将可用。 生成工具会清理此内容,将所需的类放在类定义之前
而uses
可以视为失败,因为它仅确保在调用Ext.onReady
时该类存在。
通常,这不会让您头痛,但是如果类定义要求在定义时解析依赖项,则在加载花边时会炸毁它。 如果现在是导致此问题的依赖项(xtype),则可以尝试使用手动加载它
Ext.require('class');
需要放在类定义之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.