2012-03-14 3 views
0

私はJSONPの方がはるかに優れているため、Sencha 1からSencha 2にアップグレードしています。Sencha2 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);あなたはそれが検証結果

答えて

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); 
} 
}); 
+0

このソリューションは動作していないようですが、実際には動作するコードを確認しましたか?あなたはtweet.data.textと呼ばれるものを渡しています。これは応答が(結果)であるため何も返されません。 – ApPeL

+0

あなたの結果が実際にどのように返っているか、あなたの環境がどのようなものか分からないので、 100%有効ではありません。しかし、正しい方向にあなたを指摘する必要があります... – Alex