0

変数の値を変更しようとしていますが、この投稿の指示どおりに変更しましたが、値は変更されません。

私のコードは次のとおりです。

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());                                      
} 
}
}
}
},          
]
}]
}
});
4

1 に答える 1

1

ここでいくつかのこと...

まず、meグローバル変数として初期化していますが、これは悪い考えです。これを行うのではなくme、ボタンを使用して持っているものへの参照を取得します。

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

あなたが抱えている問題は、間違った関数を呼び出していることが原因です。パラメータconfigは と定義されてonlineStatusいますが、 を呼び出していますsetonlinestatus()me.setOnlineStatus()代わりに電話してください。生成されたゲッターとセッターのキャメルケースはconfig、最初の文字が大文字になることを除いて、パラメーターとまったく同じように行われます。

于 2013-08-27T11:46:32.360 に答える