【问题标题】:Django: how to transfer array to javascript without u' '?Django:如何在没有''的情况下将数组传输到javascript?
【发布时间】:2012-01-03 16:55:35
【问题描述】:

在视图中:

'some_array': ['text1','text2', 'text3']

当我尝试将它在模板中传输到 js 脚本时:

<script type="text/javascript">
    some_func({{ some_array }});
</script>

在源代码中是这样的:

<script type="text/javascript">
    some_func([u'text1', u'text2', u'text3']);
</script>

所以这是javascript中的错误。

如何从数组元素中删除前缀u'' 或如何解决这个问题?

谢谢!

【问题讨论】:

    标签: javascript django arrays django-templates


    【解决方案1】:

    当您将 Python 列表转换为字符串时,您正在创建变量的 Python 表示 (__repr__)。您在这里尝试做的是创建相同数据的 JavaScript 表示。

    JSON 是一种很好的数据传输方式,因为很多语言都有很好的 JSON 解析器。在 JavaScript 的情况下更是如此,因为 JSON 实际上是原生 JavaScript 语法,因此您可以将 JSON 表示直接放入 JavaScript 源代码中。

    要生成 JSON,您可以使用 Python 的内置 JSON 库(Python 2.6+)。

    >>> import json
    >>> json.dumps([u'text1', u'text2', u'text3'])
    '["text1", "text2", "text3"]'
    

    这将创建一个可在您的模板中使用的字符串。

    【讨论】:

    【解决方案2】:

    将数据结构转换为 JSON string 并改用它。

    【讨论】:

    • 谢谢,我现在就试试并反馈!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2012-12-02
    • 1970-01-01
    • 2013-10-06
    相关资源
    最近更新 更多