Sencha touch 2 无法更改按钮单击-Sencha中变量的值

Sencha touch 2 无法更改按钮单击-Sencha中变量的值,sencha-touch-2,global-variables,Sencha Touch 2,Global Variables,我试图改变变量的值,我按照帖子中的说明做了,但值并没有改变 我的代码如下: Ext.define('MyApp.view.OnlineOffline', { extend: 'Ext.Panel', alias: "widget.onlineoffline", config: { onlineStatus: 0, items: [ { xtype: 'container', layout: 'hbox', cls: 'offline-wrap', items:[ {

我试图改变变量的值,我按照帖子中的说明做了,但值并没有改变

我的代码如下:

Ext.define('MyApp.view.OnlineOffline', {
extend: 'Ext.Panel',  
alias: "widget.onlineoffline", 

config: {    
onlineStatus: 0,
items: [
{
xtype: 'container',
layout: 'hbox',     
cls: 'offline-wrap',
items:[
{

xtype: 'image',
cls: 'offlineCheck',
id:'onlineButton',      
width: 85,      
height:20,      
listeners: {
tap: function (button) 
{
var me = button.up('onlineoffline')
if (!Ext.device.Connection.isOnline()) 
{
 Ext.Msg.alert('Please connect to <br/>working internet Connection?');
 this.element.removeCls('onlineCheck');
 this.element.addCls('offlineCheck');
 me.setonlineStatus(1);
 } 
 else {
if(me.getOnlineStatus())
{  
console.log( 'connection yes if' + me.getOnlineStatus());                   
me.setOnlineStatus(1);
this.element.removeCls('onlineCheck');
this.element.addCls('offlineCheck');
}
else{
this.element.removeCls('offlineCheck');
this.element.addCls('onlineCheck'); 
me.setOnlineStatus(0);
console.log( 'connection yes else' + me.getOnlineStatus());                                      
} 
}
}
}
},          
]
}]
}
});
Ext.define('MyApp.view.OnlineOffline'{
扩展:“Ext.Panel”,
别名:“widget.onlineoffline”,
配置:{
联机状态:0,
项目:[
{
xtype:'容器',
布局:“hbox”,
cls:“脱机换行”,
项目:[
{
xtype:'图像',
cls:“离线检查”,
id:“联机按钮”,
宽度:85,
身高:20,
听众:{
点击:功能(按钮)
{
var me=button.up('onlineoffline')
如果(!Ext.device.Connection.isOnline())
{
Ext.Msg.alert('请连接到正在工作的internet连接?');
this.element.removeCls('onlineCheck');
this.element.addCls('offlineCheck');
me.SetOnline状态(1);
} 
否则{
if(me.getOnlineStatus())
{  
log('connection yes if'+me.getOnlineStatus());
me.SetOnline状态(1);
this.element.removeCls('onlineCheck');
this.element.addCls('offlineCheck');
}
否则{
this.element.removeCls('offlineCheck');
this.element.addCls('onlineCheck');
me.setOnlineStatus(0);
log('connection yes else'+me.getOnlineStatus());
} 
}
}
}
},          
]
}]
}
});

这里有几件事

首先,您将
me
初始化为全局变量,这是一个坏主意。不要这样做,而是使用按钮获取对您拥有的
me
的引用:

listeners: {
    tap: function (button) {
        var me = button.up('onlineoffline')
        ...

您遇到的问题是由于调用了错误的函数而导致的。您的
config
参数定义为
onlineStatus
,但您正在调用
setonlinestatus()
。改为调用
me.setOnlineStatus()
。生成的getter和setter的camel大小写将完全按照
config
参数执行,但第一个字母将大写。

我按照您所说的做了,但值不会更改。在按钮点击条件下,仅转到else而不是if。在
if
语句中,您仍然需要使用
me.getOnlineStatus()
,因为
me.onlineStatus
将不起作用。已完成,但值没有更改。它可以控制连接是的,你说它不改变是什么意思?您的初始
config
联机状态设置为
0
,因此它将命中
else
语句。然后,您正在执行
me.setOnlineStatus(0)
就在该console语句之前,它正在打印0,即您在其前面设置的值。你想把它改成
1
吗?我的意思是,一开始值是0,当按钮点击时,它应该是1,反之亦然。是的,你的帮助让我今天学到了新东西。