簡體   English   中英

帶有ajax的Django模板上的CSS元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM