当我加载列表视图时,它左上角有几个博客文章和一个刷新按钮。
如果我点击列表项,则会使用该特定帖子的内容推送视图。按下此视图后,将隐藏刷新按钮。
但是当我点击“返回”到父列表视图时,我希望刷新按钮显示(取消隐藏) - 但它仍然是隐藏的。
知道如何使这项工作吗?
这是我的观点:
Ext.require(['Ext.data.Store', 'MyApp.model.StreamModel'], function() {
Ext.define('MyApp.view.HomeView', {
extend: 'Ext.navigation.View',
xtype: 'homepanel',
requires: [
'Ext.dataview.List',
],
config: {
title: 'Home',
iconCls: 'home',
styleHtmlContent: true,
navigationBar: {
items: [
{
xtype: 'button',
iconMask: true,
iconCls: 'refresh',
align: 'left',
action: 'refreshButton',
id: 'refreshButtonId'
}
]
},
items: {
title: 'My',
xtype: 'list',
itemTpl: [
'<div class="post">',
...
'</div>'
].join(''),
store: new Ext.data.Store({
model: 'MyApp.model.StreamModel',
autoLoad: true,
storeId: 'stream'
}),
}
}
});
});
和我的控制器:
Ext.define('MyApp.controller.SingleController', {
extend: 'Ext.app.Controller',
config: {
refs: {
stream: 'homepanel'
},
control: {
'homepanel list': {
itemtap: 'showPost'
}
}
},
showPost: function(list, index, element, record) {
this.getStream().push({
xtype: 'panel',
html: [
'<div class="post">',
'</div>'
].join(''),
scrollable: 'vertical',
styleHtmlContent: true,
});
Ext.getCmp('refreshButtonId').hide();
}
});
答案 0 :(得分:3)
我不确定这是否是最佳方法,但如果我是你,我将使用点击后退按钮时触发的back event导航视图
所以在showPost
函数旁边,你应该为后面的事件添加另一个控件,如下所示:
'homepanel list': {
itemtap: 'showPost'
},
stream: {
back: 'backButtonHandler'
}
然后您可以运行backButtonHandler
功能再次显示刷新按钮:
backButtonHandler: function(button){
Ext.getCmp('refreshButtonId').show();
}
希望有所帮助:)