2011-06-21 69 views
0

我想要做的是獲取我在我的ajax請求中的信息,作爲徽章編號如何將ajax請求轉換爲sencha touch中的變量?

這裏是我試圖去做的地方。這看起來很簡單,但我無法弄清楚。

Ext.Ajax.request({ 
     url: '../lib/messages.php', 
     success: function(response, opts) { 
     var badge_number = Ext.decode(response.responseText); 
     console.dir(badge_number); 
}, 
    failure: function(response, opts) { 
    console.log('server-side failure with status code'); 
} 
}); 

    var buttonsGroup1 = [{ 
     text: 'Messages', 
     //badge_number variable from ajax request would go here. badgeText: '2', 
     handler: tapHandler 
    }]; 
+0

這裏沒多少東西。 PHP腳本的迴應是什麼?我會打開該頁面並使用JS調試工具在Chrome/Safari中進行測試。它將允許您查看服務器的響應情況,並檢查您的成功功能中的狀態。 – mistagrooves

+0

@mistagrooves我只是有PHP腳本返回一個數字。服務器響應良好,成功功能工作它檢索數據。但我希望成功函數從php腳本獲取的數據是badgeText。我的問題是,我不知道如何將該數據放入變量buttonsGroup1 – Alex

+0

中的badgeText中。嘿,請通過這個http://stackoverflow.com/questions/9563417/how-to-consume-soap-web-service在sencha觸摸 ,並給你的寶貴迴應... – himanshu

回答

1

好的,我誤讀了這個問題。

因此,將徽章文本放在按鈕上的最直接方法是創建一個closure

var button = new Ext.Button({ 
    text: 'Messages', 
    handler: tapHandler}); 

Ext.Ajax.request({ 
    .... 
    success: function(response, opts){ 
    button.setBadge(Ext.decode(response.responseText)); 
    } 
    ... 
}); 

這將導致標記文本在AJAX調用完成時被更新。然後,您可以將AJAX請求代碼之後的對象添加到面板或工具欄,就像以前一樣。

如果在創建按鈕之前必須有按鈕上的徽章文本,則需要在成功功能中創建按鈕組,並將其分配/添加到適當的容器對象中。

+0

工作完美。只是出於好奇,如果我正在更新面板或其他任何東西,將使用相同的方法。 – Alex

+0

@亞歷山大是的,你也可以用同樣的方式來完成。您也可以在另一個方法中找到需要更新的組件的引用,例如Ext.getCmp(「id」)或this.items.getAt(n)。這真的取決於情況。 – mistagrooves

+0

嘿請通過這個http://stackoverflow.com/questions/9563417/how-to-consume-soap-web-service-in-sencha-touch 並給你寶貴的迴應... – himanshu