【发布时间】:2019-03-24 00:21:49
【问题描述】:
我很难将变量从 python 后端传递到 javascript。我的很多变量在 javascript 中都是这样的:
if ('{{ user.has_paid_plan}}' == 'True') {
isPayingUser = true;
} else {
isPayingUser = false;
}
这很难看,我相信有一种更清洁的方法可以做到这一点。这应该怎么做?
【问题讨论】:
-
在您的 js 脚本开始时,首先将所有 django 变量放入 js 变量中。例如 -
var has_paid_plan = {{ user.has_paid_plan }}。然后在其余的 js 中随处使用该 js 变量。这样你也可以在外部 js 文件中使用这些变量。其他选项是使用数据属性。您可以在某些 div 或任何内容中拥有 data-has_plan。然后你可以使用 js/jQuery 获取它的值。当页面上只有一个用户时,我会选择第一个选项,如果我显示用户列表,我将使用数据属性 -
@VaibhavVishal 如果我只是做
{{ user.has_paid_plan }},我会在 javascript 中收到错误,因为它实际上是作为True传递的(字符串,没有引号)。 -
您可以在视图中对其进行 json 序列化。它将被转换为
true,或使用引号并检查"True"或"False" -
@VaibhavVishal 不,我也使用 django 变量。这是一个既有 html/django 模板又有 javascript 的模板。
-
@David542 然后改成
var foo = "{{ foo }}";。
标签: javascript python jquery django django-templates