我的jquery代碼在html中工作,但當我在外部js文件中移動代碼時無法工作。 我想通了,大概的Django無法呈現Django if語句在外部jquery文件中
{% if something %}
爲什麼?
在Django,
your_flag = 'foo'
render(request, '[template]', {'flag': your_flag})
在:
我的jquery代碼在html中工作,但當我在外部js文件中移動代碼時無法工作。 我想通了,大概的Django無法呈現Django if語句在外部jquery文件中
{% if something %}
爲什麼?
在Django,
your_flag = 'foo'
render(request, '[template]', {'flag': your_flag})
在:
一般我們通過在python上下文標誌,然後使其作爲隱藏的輸入或一個隱藏的元素,最後通過jQuery訪問它的值模板,
<input type="hidden" name="flag" value="{{ flag }}" />
在js文件
,
var flag = $("[name='flag']").val()
if (flag === 'foo') {
// then do a lot of things
}
好的解決方案!感謝這:) –
把手也許是另一種解決方案,你可以試試看。 – iMom0
它不能在.js文件中工作,因爲.js文件是「按原樣」加載的,而不是經過處理的模板。因此,任何模板代碼都會逐字加載,並且可能會導致js文件中的解析錯誤。檢查螢火蟲或鉻開發工具。
如果你想讓你的js被模板系統處理,你需要使用{% include "subtemplate.js" %}
,但是最終你會得到內聯代碼。否則,你需要按照@ iMom0的方式來實現。
因爲當django調用一個'render'方法時,它會得到相關的html文件並查找所有變量和函數(以及任何是python和django)並設置變量,進行條件檢查並將結果渲染爲結果。 :在這種情況下,你的js永遠不會由django渲染(所以通過python)。 – FallenAngel