簡體   English   中英

如何將自定義模板標簽中的數據導入 javascript? Django

[英]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  = [{"&quot;hello&quot; : &quot;message&quot;"}]
getmessageData = getmessageData[0].replaceAll("&quot;",'"')
console.log(getmessageData);
// Output : "hello" : "message"

一旦你得到一個 JSON 你就可以在你的解析方法中使用它。

我希望這可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM