Extjs 获取Ext.dataview.List实例以显示在Ext.tab.Panel实例内部
我不知道如何在另一个对象中显示Ext.dataview.List对象。如果我尝试在视口中单独显示Ext.dataview.List对象,我可以看到我的数据。但是,如果我试图将它作为一个组件包含在另一个组件中,它会认为没有数据(从HTML输出判断),并且不会显示任何内容 因此,如果我有一个app.js,其代码如下:Extjs 获取Ext.dataview.List实例以显示在Ext.tab.Panel实例内部,extjs,sencha-touch,sencha-touch-2,Extjs,Sencha Touch,Sencha Touch 2,我不知道如何在另一个对象中显示Ext.dataview.List对象。如果我尝试在视口中单独显示Ext.dataview.List对象,我可以看到我的数据。但是,如果我试图将它作为一个组件包含在另一个组件中,它会认为没有数据(从HTML输出判断),并且不会显示任何内容 因此,如果我有一个app.js,其代码如下: Ext.application({ name: 'MobileUnion', views: ['LocalsList'], models:
Ext.application({
name: 'MobileUnion',
views: ['LocalsList'],
models: ['Local'],
stores: ['Locals'],
launch: function() {
// Initialize the main view
var mainView = {
xtype: 'localslist'
};
Ext.Viewport.add([mainView]);
}
});
我可以这样设置MobileUnion.view.LocalsList,这样就不会产生任何列表:
Ext.define('MobileUnion.view.LocalsList', {
extend: 'Ext.Container',
alias: 'widget.localslist',
requires: 'Ext.dataview.List',
config: {
items: [
{
itemId: 'localsList',
store: 'Locals',
loadingText: 'Loading Locals...',
emptyText: '<div>No locals found.</div>',
onItemDisclosure: true,
itemTpl: '<div>{localName}</div><div>{designation}</div>'
}
]
}
});
app/store/Locals.js
在选项1中,您定义了一个容器,但实际上并没有向容器中添加项目。要将列表添加到容器中,请将
xtype:'list'
添加到项目数组中。接下来要做的是将容器布局设置为适合,否则列表将不会显示。这应该适合您:
Ext.define('MobileUnion.view.LocalsList', {
extend: 'Ext.Container',
alias: 'widget.localslist',
requires: 'Ext.dataview.List',
config: {
layout: {
type: 'fit' //set containers layout
},
items: [
{
xtype: 'list', //add xtype
itemId: 'localsList',
store: 'Locals',
loadingText: 'Loading Locals...',
emptyText: '<div>No locals found.</div>',
onItemDisclosure: true,
itemTpl: '<div>{localName}</div><div>{designation}</div>'
}
]
}
});
Ext.define('MobileUnion.view.LocalsList'{
扩展:“Ext.Container”,
别名:“widget.localslist”,
需要:“Ext.dataview.List”,
配置:{
布局:{
键入:“适合”//设置容器布局
},
项目:[
{
xtype:'列表',//添加xtype
itemId:'localsList',
商店:“本地人”,
loadingText:“正在加载局部变量…”,
emptyText:“找不到本地人。”,
对,是的,
itemTpl:“{localName}{designation}”
}
]
}
});
有关Sencha中布局的更多信息:
祝你好运 在选项1中,您定义了一个容器,但实际上并没有将项目添加到容器中。要将列表添加到容器中,请将
xtype:'list'
添加到项目数组中。接下来要做的是将容器布局设置为适合,否则列表将不会显示。这应该适合您:
Ext.define('MobileUnion.view.LocalsList', {
extend: 'Ext.Container',
alias: 'widget.localslist',
requires: 'Ext.dataview.List',
config: {
layout: {
type: 'fit' //set containers layout
},
items: [
{
xtype: 'list', //add xtype
itemId: 'localsList',
store: 'Locals',
loadingText: 'Loading Locals...',
emptyText: '<div>No locals found.</div>',
onItemDisclosure: true,
itemTpl: '<div>{localName}</div><div>{designation}</div>'
}
]
}
});
Ext.define('MobileUnion.view.LocalsList'{
扩展:“Ext.Container”,
别名:“widget.localslist”,
需要:“Ext.dataview.List”,
配置:{
布局:{
键入:“适合”//设置容器布局
},
项目:[
{
xtype:'列表',//添加xtype
itemId:'localsList',
商店:“本地人”,
loadingText:“正在加载局部变量…”,
emptyText:“找不到本地人。”,
对,是的,
itemTpl:“{localName}{designation}”
}
]
}
});
有关Sencha中布局的更多信息:
祝你好运
Ext.define('MobileUnion.store.Locals', {
extend: 'Ext.data.Store',
requires: ['MobileUnion.model.Local'],
config: {
model: 'MobileUnion.model.Local',
data: [
{ localName: 'ABCD', designation: '123' },
{ localName: 'WXYZ', designation: '456' }
],
autoLoad: true,
sorters: [{ property: 'dateCreated', direction: 'DESC'}]
}
});
Ext.define('MobileUnion.view.LocalsList', {
extend: 'Ext.Container',
alias: 'widget.localslist',
requires: 'Ext.dataview.List',
config: {
layout: {
type: 'fit' //set containers layout
},
items: [
{
xtype: 'list', //add xtype
itemId: 'localsList',
store: 'Locals',
loadingText: 'Loading Locals...',
emptyText: '<div>No locals found.</div>',
onItemDisclosure: true,
itemTpl: '<div>{localName}</div><div>{designation}</div>'
}
]
}
});