2012-09-29 39 views
1

如何在外部JavaScript文件中使用django with模板標記? 我試圖用這樣的:Django - 模板標記「with」in javascript

<script> 
    //some code 
    // 
    {% with user|get_song_rating:opts.id as rated %} 
     {% if rated %} 
      $off.unbind('click').unbind('mousemove').unbind('mouseenter').unbind('mouseleave'); 
      $off.css('cursor', 'default'); $on.css('cursor', 'default'); 
      $this.attr('title', 'Your rating: ' + rated.points.toFixed(1)); 
     {% endif %} 
    {% endwith %} 
</script> 

但它在控制檯Uncaught SyntaxError: Unexpected token with給出錯誤。我認爲問題是with也是JavaScript的關鍵字,那麼解決方案是什麼?

+0

這不是它,這是兩個不同的層次 - 當渲染你的html時,Django不關心javascript。似乎你錯誤地使用了{%with%}。 –

+0

這是我如何使用'with'標籤你看到任何問題的語法? –

回答

3

如果你想讓你的文件包含Django模板標籤,那麼它必須由Django模板引擎處理。創建一個新視圖,爲JavaScript源發送適當的Content-type標題,然後處理並輸出包含JavaScript的模板。

+0

謝謝!它只是工作。你能告訴我如何將'opts.id'這個JavaScript變量傳遞給模板過濾器嗎?它現在引發異常'關鍵選擇失敗查找' –

+0

你不能。您需要使用AJAX將該變量傳遞給視圖,然後將結果作爲JSON返回。 –

+0

非常感謝您的幫助,+1 –