【问题标题】:How to import data from custom template tag to javascript? Django如何将数据从自定义模板标签导入到 javascript?姜戈
【发布时间】:2021-08-19 10:01:56
【问题描述】:

如何在自定义模板标签上转义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 是名称的一部分。

【问题讨论】:

    标签: javascript json django parsing


    【解决方案1】:

    您可以尝试的一件事是将 all 转换为字符串,然后使用 javascript replaceAll() 将 quot 转换为双引号。

    类似

    let getmessageData  = [{""hello" : "message""}]
    getmessageData = getmessageData[0].replaceAll(""",'"')
    console.log(getmessageData);
    // Output : "hello" : "message"
    

    一旦你得到一个 JSON,你就可以在你的 parse 方法中使用它。

    我希望这会有所帮助。

    【讨论】:

    • 非常感谢哥们,效果很好。
    猜你喜欢
    • 2019-01-29
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2011-12-18
    • 2021-08-10
    • 2011-08-23
    相关资源
    最近更新 更多