Перемещение переменной Sencha2 JsonP на панель - PullRequest
0 голосов
/ 14 марта 2012

Я обновляю свое приложение с 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 голосов
/ 14 марта 2012

Помните, что в асинхронной среде обратный вызов повлияет на ваше значение только после его использования. Так что-то вроде этого должно работать:

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);
}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...