[英]CSS elements on django template with ajax
使用下面的Django模板以CSS樣式呈現字典:
<div id="div_unkown_txt">
{% for k, v in unkown.items %}
<div>
<span class='personal_word'>{{k}}</span> : {{v.2}}
</div>
<div class='dt'>{{v.1}}</div>
<div>{{v.0|safe}}</div>
{% endfor %}
</div>
我也需要用ajax回調更新div,所以我寫了類似的函數unkown_html():
function unkown_html(k, v){
return "<div><span class='personal_word'>" + k + "</span> : " + v[2] + "</div>" +
"<div class='dt'>" + v[1] + "</div>" +
"<div>" + v[0] + "</div>";
}
function repeat_word(w){
$.ajax({
type: "POST",
url: '../word_repeat',
data:{w:w},
success: function(data){
var txt='';
$.each(data, function(k, v){
txt += unkown_html(k,v);
});
$("#div_unkown_txt").html(txt);
}
});
}
這兩個函數是相同的,並且由於ajax更適合熱插拔渲染,因此我想知道如何在模板渲染中調用unkown_html()?
不幸的是,您的問題有點難以理解。 我想您是在問如何在重新呈現頁面的一部分以響應Ajax調用時減少模板代碼和Javascript之間的重復。
我通常處理此問題的方法是讓Ajax調用本身返回渲染的HTML,而不是JSON。 因此,您可以將該模板片段提取到其自己的文件中,然后將其{% include %}
提取到普通模板中,但直接從Ajax視圖中調用。 然后,JavaScript只需要將接收到的HTML插入頁面中,而不是從頭開始重新渲染任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.