Sencha2 JsonP将变量推送到Panel

时间:2012-03-14 12:27:46

标签: sencha-touch extjs4 extjs sencha-touch-2

我正在将我的应用程序从Sencha 1升级到Sencha 2,因为它可以更好地处理JSONP。

我已经设置了我的应用,需要了解如何推送我的JSONP结果。 这是我的JSON请求

var tweet = Ext.data.JsonP.request({
    url: 'https://api.twitter.com/1/statuses/user_timeline.json',
    params: {
        'include_entities': true,
        'screen_name': 'NynasBo',
        'count': 1
    },
    callbackKey: 'callback',
    success: function(data) {
        Ext.each(data, function(i, item) {
            var tweet = i.text;
        });
    }
});

这是我试图推动它的功能。

var contact = Ext.define('Nynas.view.Contact', {
    extend: 'Ext.Panel',
    xtype: 'contactcard',

    config: {
        title: 'Contact',
        styleHtmlContent: true,
        html: '' + tweet.success.tweet
    },
});

但是目前如果我查看我的应用,我只会得到undefined回复。 我已经验证了查询,并通过简化切换此行来确保它的工作正常     var tweet = i.text; 至     的console.log(i.text);

您可以看到它会有验证结果

1 个答案:

答案 0 :(得分:0)

请记住,在异步环境中,回调只会在使用后影响您的值。所以这样的事情应该有效:

Ext.define('Nynas.view.Contact', {
extend: 'Ext.Panel',
xtype: 'contactcard',

config: {
    title: 'Contact',
    styleHtmlContent: true,
    html: ' '
},
});

var contact = Ext.create('Nynas.view.Contact');

var tweet = Ext.data.JsonP.request({
url: 'https://api.twitter.com/1/statuses/user_timeline.json',
params: {
    'include_entities': true,
    'screen_name': 'NynasBo',
    'count': 1
},
callbackKey: 'callback',
success: function(result) {
  contact.setHtml(result.data.text);
}
});