国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django模板變量如何傳遞給外部js調用的方法小結

2020-01-04 17:03:27
字體:
來源:轉載
供稿:網友

前言

因為工作的需要,最近一直在思考如何更好的組織Django中的靜態資源,比如JS、CSS一類,如何結合前端構建工具寫出更好的代碼以及結構呢?下面這篇文章就給大家詳細介紹了實現的方法,話不多說,來一起看看詳細的介紹:

方法如下:

首先需要解決的一個問題就是某些時候需要把JS代碼寫在模板里來獲取后臺傳遞過來的變量,比如:

<div><h1>Test</h1><div id="my-test" ></div></div><script>$(function(){ $('#my-test').html("{{ some_var_from_view }}")});</script>

這么寫代碼的話,別扭不說,前端的那些構建工具比如webpack,gulp的使用范圍也將大大降低。

首先說結論,想完全剝離JS和模板而又需要使用模板渲染的數據,我是沒想到什么好辦法。如果讀者有好辦法希望賜教。
既然不能完全剝離,那么就進最大的努力分離JS所需的數據和代碼吧。

既然需要模板渲染數據給JS使用,最先想到的辦法就是把數據渲染到HTML代碼中并隱藏。這種方法的優點就在于簡單,甚至模板中都可以完全不使用<script></script>標簽。缺點則是會渲染出很多的隱藏字段,JS中要寫大量的getElementsByxxxx一類的代碼來獲取數據。

既然如此,那么使用一種折中的辦法,在HTML中使用<script></script>標簽將后臺傳遞的數據渲染成JS對象,然后JS代碼中則可以直接使用這個對象了。

比如模板中:

<script>var MyViewVar = { var_1: {{ var_1 }}, var_2: {{ var_2 }},};</script>...<script type="text/javascript" src="/js/test_script.js"></script>

使用這種方式需要注意一點就是盡量先寫渲染JS變量的代碼,比如寫在head中,然后再引入外部JS文件。這樣,在test_script.js中就可以直接使用MyViewVar這個對象了。

當然了,既然現在流行SPA(Single Page Application)網站,那么django作為后端僅提供JSON數據也是一種辦法,不過這樣比較考驗前端人員的能力了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大田县| 迭部县| 蕉岭县| 普定县| 常熟市| 七台河市| 屏东市| 黄陵县| 公主岭市| 韶山市| 小金县| 堆龙德庆县| 天水市| 鄄城县| 商丘市| 郸城县| 泽普县| 巴中市| 黎川县| 五寨县| 巩留县| 湛江市| 高邮市| 南江县| 忻城县| 揭西县| 田阳县| 临邑县| 颍上县| 苍南县| 任丘市| 新乐市| 黑水县| 诸暨市| 洛隆县| 胶南市| 监利县| 高安市| 凤阳县| 香河县| 沾益县|