Javascript包含django标签

时间:2012-11-13 04:41:47

标签: javascript ajax django

<script>

 //Handle the callback on success

 function stateChange(){

    if (xmlHttp.readyState==4 && xmlHttp.status==200) {

    //request is successful. So retrieve the values in the response
    var display_language = xmlHttp.responseText.split(';');
    alert("response: " + display_language);

    var newHtml = '{% for chunk in video.chunks.all %} {% for c in chunk.chunklets.all%} <tr> <td>{{c.start}}</td> <td> {% spaceless %} {%for item in c.contents.all%}{%if item.lang ==  display_language %}{{item.text.strip}}{%endif%}{%endfor%} {% endspaceless %} </td> <td>{{c.finish}}</td> </tr> {%endfor%} {%endfor%}';

    $('#xxx').html(newHtml);
    }
}
</script>

如果我使用上面的代码,则display_language值为null。但是警报可以打印display_language的值。只是display_language无法传递给newHtml。

如果更改为

var newHtml = '{% for chunk in video.chunks.all %} {% for c in chunk.chunklets.all%} <tr> <td>{{c.start}}</td> <td> {% spaceless %} {%for item in c.contents.all%}{%if item.lang ==';

newHtml +=  display_language +'%}{{item.text.strip}}{%endif%}{%endfor%} {% endspaceless %} </td> <td>{{c.finish}}</td> </tr> {%endfor%} {%endfor%}';

错误是“”无效的块标记:'endif',预期'空'或'endfor'

1 个答案:

答案 0 :(得分:0)

你试图混合Javascript和Django模板太多了。请记住,首先运行所有Django,然后运行所有的javascript。因为display_language值是在Javascript中创建的,所以不能在Django模板中使用它。我建议只将所有数据传递给Javascript,然后在纯JavaScript中构建newHtml值。