2017-03-02 74 views
4

我在JavaScript模板循環如JavaScript函數:Django的模板通話循環

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

反正有沒有想我可以調用javascript函數返回所需的DOM元素,如:

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

我只是想調用一個js函數,並有一些檢查,並返回一個元素根據..

+0

請發佈一個MCVE。你使用的這段代碼是完全沒有javascript的東西。 – e4c5

+0

是的,它可以完全沒有JavaScript,但我需要做一些JavaScript塊內處理,所以我正在尋找這樣的方法.. – aryan

+0

@ e4c5什麼是MCVE? – aryan

回答

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的條件,那麼一些陣列呈現與模板在一些功能裏面。 draw_charts定義在外面的某個地方。 我在所有這些情況下的建議 - 儘可能多地移動到這樣的地方或您的代碼轉換爲良好的舊PHP4。