如何将ajax请求放入sencha touch中的变量中?
Posted
技术标签:
【中文标题】如何将ajax请求放入sencha touch中的变量中?【英文标题】:How to get ajax request into a variable in sencha touch? 【发布时间】:2011-06-21 16:01:39 【问题描述】:我想要做的是获取我在 ajax 请求中的信息作为徽章文本编号
这是我想要做的。这似乎很简单,但我无法弄清楚。
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
];
【问题讨论】:
这里没什么好说的了。 PHP 脚本的响应是什么?我会打开页面并使用 JS 调试工具在 Chrome/Safari 中对其进行测试。它将允许您查看服务器响应的内容,并检查成功函数中的状态。 @mistagrooves 我只是让 php 脚本返回一个数字。服务器响应良好,成功功能可以检索数据。但我希望成功函数从 php 脚本中获取的数据是 badgeText。我的问题是我不知道如何将该数据放入变量buttonsGroup1中的badgeText 嘿,请通过***.com/questions/9563417/… 并给出您宝贵的回复... 【参考方案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 请求代码之后将对象添加到面板或工具栏。
如果在创建按钮之前绝对必须在按钮上添加标记文本,则需要在成功函数内创建按钮组并将其分配/添加到适当的容器对象。
【讨论】:
效果很好。只是出于好奇,如果我要更新面板或其他任何东西,也会使用相同的方法。 @Alex 是的,你也可以用同样的方式来做。您还可以在其他方法中找到对需要更新的组件的引用,例如 Ext.getCmp("id") 或 this.items.getAt(n)。这真的取决于情况。 嘿,请通过***.com/questions/9563417/… 并给出您宝贵的回复...以上是关于如何将ajax请求放入sencha touch中的变量中?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Sencha Touch Ajax 请求中发现 302 响应