我有以下jQuery AJAX請求,它會按預期返回正確的JSON響應(這是一個youtube標識)。然而,當我嘗試使用插入ytid
到framecode
:AJAX響應不在JavaScript模板中呈現
rendered = Mustache.render(framecode, {ytid: ytid});
我留下其中{{ytid}}
應與ytid
內容所代替一個空的空間。 在Firefox調試器中,ytid
顯示爲預期的字符串,並且當我在調試器中運行上述行時,{{ytid}}
將按照預期替換爲youtube標識。很奇怪。另外,當我打印ytid
到控制檯時,它也能正確打印,所以我確定該變量不是空的。
$(document).on("click", ".movlist_youtubebutton", function() {
console.log("Youtube Button Clicked");
var ytid = $(this).data('ytid');
var movid = $(this).data('movid');
function isEmpty(str) {
return (!str || 0 === str.length);
}
if (isEmpty(ytid)) {
$.ajax({
url: "/gettrailer/",
method: "GET",
data: {movid: movid},
dataType: "json",
success: function (result) {
console.log(result);
ytid = result.ytid;
window.ytid = ytid;
console.log(ytid);
}
});
}
framecode = '<iframe width="560" height="315" src="https://www.youtube.com/embed/{{ytid}}" frameborder="0" allowfullscreen></iframe>';
rendered = Mustache.render(framecode, {ytid: ytid});
console.log(rendered);
// window.ytid = 'test3'
console.log(ytid);
popup = $('#popup' + movid);
popup.popup({
opacity: 0.3,
transition: 'all 0.3s'
});
popup.popup('show');
popup.html(rendered);
});
輝煌,謝謝合作編輯的代碼。如果有人感興趣,我會發布代碼。 – user13238