django模板在循环上调用javascript函数

时间:2017-03-02 05:19:32

标签: javascript django

我在一个javascript模板中循环,如:

{% for movie in movies %}
    {{movie.name}}
{% endfor %}

无论如何,我可以调用一个返回所需DOM元素的javascript函数,如:

{% for movie in movies %}
    <script>
        function get_movie(name) {
            return "<div> class='movie-title'>name</div>
        }
        get_movie({{movie.name}})
    </script>
{% endfor %}

我只想调用一个js函数并进行一些检查并根据..

返回一个元素

1 个答案:

答案 0 :(得分:1)

当然有可能。你最好将<script>标签移出django循环,也可以起作用。仅供参考,我将在此处放置一个示例,我的代码在我的django管理页面中绘制图表:

<script type="text/javascript">
    {% if cl.show_chart %}
        (function($) {
            $(document).ready(function() {
                var data = [
                    {% for sold in cl.get_sold_info %}
                        {
                            fullname: '{{ sold.fullname }}',
                            date: {{ sold.date|date:"U" }}000,
                            partner: '{{ sold.partner }}',
                            price: {{ sold.price }}
                        },
                    {% endfor %} ];
                draw_charts(data, $);
            });
        })(someNamespace.jQuery);
    {% endif %}
</script>

正如您所看到<script>标记内部存在一些django条件,然后在某个函数内部使用模板for循环呈现某些数组。 draw_charts定义在外面的某个地方。 我在所有这些情况下的建议 - 尽可能多地从这样的地方移动,或者你的代码变成了旧的PHP4。