AJAX 応答を JSRender テンプレートにレンダリングする際に問題が発生しています。
$.getJSON 呼び出しを行っています。成功したら render(data) 関数を呼び出します。console.log を使用して、$.getJSON 呼び出しから受信したデータが正しいことを確認します。
function createNewsPage(event){
console.log("inside createNewsPage. Event Target: "+ $(event.target).text());
$.getJSON("http://query.yahooapis.com/v1/public/yql?q=xyzhere"L,
{
cache: "true",
dataType: "json"
},
function(data) {insertContent(data);}
);
event.stopPropagation();
event.preventDefault();
$("#listviewNews").collapsibleset('refresh');
return false;
}
function insertContent(resp){
console.log("---data received:\n" + JSON.stringify(resp));
$("#insertedContent").html(
$("#newsTemplate").render(resp)
).trigger('create');
}
エラーは発生しませんが、テンプレートがレンダリングされると、JSON ペイロードの実際のテキスト コンテンツではなく [object] という単語が表示されます。
なぜこれが起こっているのか、または単に [object] と言うのではなく、json オブジェクトのテキスト (文字列) を表示する方法について何か考えはありますか?
文字列化された応答 (通常の RSS フィード) は次のとおりです。
{
"query": {
"count": 3,
"created": "2013-03-29T16:12:49Z"
},
"results": {
"item": [
{
"title": "BracketRacket: A quiz, a thought and Peeps"
},
{
"title": "Correction: Mandatory Gun Ownership story"
},
{
"title": "Clashes erupt in 2 cities in northern Egypt"
}
]
}
}
}