目前我是Sencha的新手,我想从Ext.Container中的商店计数更新Sencha Touch中的badgeText。
请参阅下面的代码供您参考:
Ext.define('XX.view.Menu',{
extend: 'Ext.Container',
xtype: 'menu',
config: {
cls: 'mainmenu',
docked: 'left',
top: 0,
left: 0,
bottom: 0,
zIndex: 0,
width: 266,
padding: '0 0 0 0',
open: false,
scrollable: 'vertical',
defaultType: 'button',
defaults: {
textAlign: 'left'
},
scrollable: {
indicators: false
},
items: [{
text: 'Home',
ui: 'mainmenu',
iconCls: 'home',
itemId: 'home'
},{
text: 'Contact Us',
ui: 'mainmenu',
iconCls: 'form',
itemId: 'contactus'
},{
text : 'Notifications',
ui: 'mainmenu',
badgeText: '0',
iconCls: 'form',
itemId: 'notifications'
}]
},
setParent: function(parent) {
this.callParent(arguments);
this.maskCmp = parent.add({
xtype : 'component',
cls : 'mainmenu-mask',
top : 0,
zIndex : 5000,
hidden : true,
width : 9999,
left : this.getWidth(),
bottom : 0
});
this.maskCmp.element.on({
scope : this,
touchend: 'onMaskRelease'
});
}
});
编辑: 这个是按照Sujata的 - Tap事件
工作的 config: {
refs: {
notificationsMenuItem: 'menu #notifications'
},
control: {
notificationsMenuItem: {
tap: 'notificationsItemTap'
}
}
}
notificationsItemTap: function(button){
button.setBadgeText('1');
}
编辑:UPDATE-02 - 根据Sujata的最新回复修改代码:
config: {
refs: {
notificationsMenuItem: 'menu #notifications'
}
},
control: {
main: {
initialize: 'mainInitialize',
navigationMode: 'switchToNavigation'
}
},
mainInitialize: function() {
this.getNotificationsMenuItem().setBadgeText('48');
}
答案 0 :(得分:0)
您可以使用setBadgeText
方法进行设置。添加'名称:"通知"'按钮视图中的字段。在控制器中获取按钮的引用,如下所示:
refs: {
notificationsBtn : 'button[name="notifications"]'
}
获取按钮点击事件:
control: {
notificationsBtn : {
tap : function(btn) {
btn.setBadgeText('1'); // Get your store data and set
}
}
修改: - 强>
要在菜单加载时获取徽章文本,您可以使用视图的初始化方法,如下所示: -
refs: {
menu: 'menu',
notificationsBtn : 'button[name="notifications"]'
},
control: {
menu : {
initialize : function(){
this.getNotificationsBtn().setBadgeText('1');
}
}
}