Ext.dataview.List オブジェクトを別のオブジェクト内に表示する方法がわかりません。ビューポートに Ext.dataview.List オブジェクトを表示しようとすると、それ自体でデータが表示されます。しかし、それを別のコンポーネント内のコンポーネントとして含めようとすると、(HTML 出力から判断して) データがないと見なされ、何も表示されないように見えます。
したがって、次のコードを含む app.js があるとします。
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>'
}
]
}
});
または、次のように設定すると、データが取り込まれたリストになりますが、別のコンポーネントの内部にはなりません。
Ext.define('MobileUnion.view.LocalsList', {
extend: 'Ext.dataview.List',
alias: 'widget.localslist',
config: {
itemId: 'localsList',
store: 'Locals',
loadingText: 'Loading Locals...',
emptyText: '<div>No locals found.</div>',
onItemDisclosure: true,
itemTpl: '<div>{localName}</div><div>{designation}</div>'
}
});
これを実行しようとしている理由は、リスト コンポーネントをタブ パネル内に表示できるようにするためです。
注: ここですべての Fiddle を組み立てました: http://www.senchafiddle.com/#6nCH8
何か基本的なことが欠けているに違いありませんが、この時点でドキュメントを読み、2 冊の本を購入しました。1 冊は完全に読み、もう 1 冊はコーディング中に読んでいますが、まだ答えがありません。どんな助けでも大歓迎です。
追加コード
アプリ/モデル/Local.js
Ext.define('MobileUnion.model.Local', {
extend: 'Ext.data.Model',
config: {
idProperty: 'id',
fields: [
{ name: 'id', type: 'int' },
{ name: 'dateCreated', type: 'date', dateFormat: 'c' },
{ name: 'localName', type: 'string' },
{ name: 'designation', type: 'string' }
],
}
});
アプリ/ストア/Locals.js
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'}]
}
});