[英]How to import data from custom template tag to javascript? Django
如何在自定義模板標簽上轉義 js?
在我的 custom_tags.py 中,我注冊了一個簡單的標簽,它只是以字典數組的形式從 firebase 獲取數據。 我想將此數組直接傳遞給我的 JavaScript 但這樣做會出錯。
我的 custom_tags.py -
@register.simple_tag
def getMessageData():
message_data = []
data = database.child('ChatMessages').get()
for task in data.each():
message_data.append(task.val())
return dumps(message_data)
在我的 js -
messageData = JSON.parse("{% getMessageData %}");
這給了我Uncaught SyntaxError: Unexpected token & in JSON at position 2 at JSON.parse (<anonymous>) at (index):23
我嘗試通過var temp2 = "{% getMessageData %}"
調試值,所以我發現它的值是
所以基本上我需要一些方法來在我的自定義模板標簽上使用 escapejs。它很容易對通過渲染傳遞的值執行,但使用{% template_tag_name|escapejs %}
會給出錯誤,因為它認為 escapejs 是名稱的一部分。
您可以嘗試的一件事是將 all 轉換為字符串,然后使用 javascript replaceAll() 將 quot 轉換為雙引號。
就像是
let getmessageData = [{""hello" : "message""}]
getmessageData = getmessageData[0].replaceAll(""",'"')
console.log(getmessageData);
// Output : "hello" : "message"
一旦你得到一個 JSON 你就可以在你的解析方法中使用它。
我希望這可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.