2010-02-24 32 views
3

我有一個簡單的Django應用程序,它具有各種不同資產類型的各種視圖。我有各種jQuery的功能是關閉的關鍵資產類型名稱,所以當我生成使用我用一個模板變量,以填補在JavaScript代碼的資產類型參數Django模板的頁面...使用django模板將參數傳遞給頁面上的Javascript代碼?

$(document).ready(function() 
{ 
    $(".project").click(function() {return FiltersChanged('{{ asset_type }}', $('#filter_entry').val());}); 
}); 

我在應用程序中使用這種範例很多,對我來說似乎有些尷尬,我發現我在不同的模板文件中創建了很多重複的代碼,只是因爲我需要填寫{{asset_type }}變量,我希望能夠減少重複,而不是每次都需要在模板中生成代碼。

那麼,有沒有更好的方法來做到這一點,不需要在每個頁面中重複代碼?

+0

Duplicate:http://stackoverflow.com/questions/1445989/passing-python-data-to-javascript-via-django – 2010-02-24 16:36:25

回答

2

對於這樣的常用值,一種選擇是將模板的某些部分轉儲到全局可用對象中,然後您的腳本可以通過這種方式訪問​​這些值。例如,你可以做這樣的事情:

<script> 
    body.data('assetInfo', { 
    'type': '{{ asset_type }}', 
    // ... 
    }); 
</script> 

那麼你的腳本可以只是去「assetinfo的」數據元素對身體的標籤時,他們需要的東西。當您的腳本可以從服務器端代碼中釋放時很好,因爲您可以讓客戶端緩存它們。