私は Ext.dataview.List を拡張するジェネリック クラスを持っており、現在、私が持っている一連のブログを一覧表示しています。
Ext.define('Blog.view.BlogList',{
extend: 'Ext.dataview.List',
xtype: 'blogList',
config: {
cls: 'blogList',
emptyText: 'No blogs found...',
itemCls: 'blogListItem',
itemTpl: [
'<div class="blogThumb"><img src="{image.medium}" /></div>',
'<div class="blogTitle">{title}</div>',
].join(''),
loadingText: 'Loading blogs...'
}
});
誰かがリスト内の項目の 1 つをタップすると、私のコントローラーは現在メソッドを実行しshowBlog
ます。これが私の現在のコントローラーです:
Ext.define('Blog.controller.Main',{
extend: 'Ext.app.Controller',
config: {
refs: {
blogContainer: 'blogContainer',
blogList: 'blogList'
},
control: {
blogList: {
itemtap: 'showBlog'
}
}
},
slideLeftTransition: { type: 'slide', direction: 'left'},
init: function() {
console.log('Blog.controller.Main init');
},
launch: function() {
console.log('Blog.controller.Main launch');
},
showBlog: function(list, index, element, record) {
console.log('showing blog #'+record.data.id);
var blogContainer = this.getBlogContainer();
blogContainer.setData(record.data);
Ext.Viewport.animateActiveItem(blogContainer, this.slideLeftTransition);
}
});
これまでのところ、すべてがうまく機能していますが、タップされたレコードからの新しい情報で blogContainer のすべてのコンポーネントを更新する方法がわかりません。
パネルを作成するという単純な概念を使用できません。ブログがタップされたときに、かなり複雑な新しいコンテナーが表示されるようにしたいからです...サブコンポーネントなど.
この新しいコンテナーにblog
詳細を表示し、その情報を更新する方法を教えてください。