![](/img/trans.png)
[英]A general query about django / javascript patterns and how to best organize/encapsualte
[英]django and javascript how to organize
我試圖弄清楚如何組織我的javascript / django代碼。
到目前為止,我曾經將我的javascript頁面特定代碼放在同一文件中。 即我將javascript嵌入模板內的<script>
標記中。 當我的JS代碼變大時,這會造成很多混亂:
-我的JS代碼中的Django模板變量{{var}}
看起來不太好,
-當我嘗試使用這樣的工具將其最小化時,我得到一個錯誤: http : //jscompress.com/ ,
-我只是盡量將它們分開。
今天,在我的<script>
標記中,我的JS代碼如下所示:
var app = {
func: function() {
// can I use the {% url %} tag here ?
$.post('/url/', {csrfmiddlewaretoken:'{{csrf_token}}', something:'value'} )
},
jsonFromServer: '{{pythonDict|safe}}', // I need this data structure,
};
如您所見,我需要將django形式的值傳遞給javascript,其中最常見的是ajax請求的csrftoken。 但有時我還會傳遞應用程序本身所需的json字典。 有時我也想打發服務器時間。
我正在考慮將JS代碼移動到一個單獨的文件中,我讀到這是更好的組織方式。 但是我看不到沒有django必須呈現.js文件的普通django應用程序中的可能性。 而且我相信django最好不要提供JS文件? 那么,如何在其中沒有太多Django代碼的情況下組織我的JS?
我不知道它是否“漂亮”,但通常,在MVC中進行Web開發時,我會像這樣組織代碼:
通常,我不必這樣做。 當我需要在js代碼中從服務器獲取var時,我會進行一些Ajax調用。
但是,如果您真的想要這樣處理,我建議您在模板中執行以下操作:
<script>
var from_server = {{vars_from_server}};
</script>
通常,如果將名為vars_from_server的變量傳遞到模板,它將替換腳本標記之間的占位符。 只需考慮以正確的JS格式設置“ vars_from_server”的格式。
之后,您可以通過從任何地方訪問from_server變量來訪問腳本中的var。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.