gpt4 book ai didi

javascript - Javascript可以编译Django的模板吗?

转载 作者:行者123 更新时间:2023-11-28 01:36:48 24 4
gpt4 key购买 nike

我有一个由 Django 渲染的模板,其中填充了我在 View 中传递的上下文。但我需要在客户端使用新上下文重新编译此模板。

经过一番研究,我终于找到了 MustacheJs ,但信息的泄露让我产生了一些疑问。

我是否只需编写一个 template.mustache,Javascript Django 就能编译它?

Mustache 语法似乎使用了一些符号,例如:

{{#items}} {{/items}}

而 Django 是

{% for item in items %}

我觉得他们看起来很不一样......其实我什至不知道 Mustache 是否是我需要的,是否可以做我想要的?


编辑

好吧,让我准确解释一下我需要什么。我有这个模板:

items.html:

<form action="item/add/">
<input type="text" class="item-name" name="name">
<input type="submit" value="New Item">
</form>
{% if items %}
<ul class="item-list">
{% for item in items %}
<li>
{{ item.name }}
</li>
{% endfor %}
</ul>
{% endif %}

此模板由此 View 编译:

def items(request):
items = Item.objects.all()
context = {
'items': items
}
return render_to_template('items.html', context)

所以这个模板是由服务器端编译和渲染的。现在假设用户单击添加了一个新项目,并且此函数运行:

addItem: function addItem() {
var action = this.$form.attr('action');
$.post(action, {
name: this.$itemName.val()
}, function(response) {
if (response.success) {
// LOAD FROM THE SAME TEMPLATE DJANGO DID
var newItem = loadTemplate('items.html', {
item: response.item
});
this.$itemList.append(newItem);
}
});
}

我需要的是这个loadTemplate解析器库,我不知道它是否存在,但它确实存在,这就是我想要的!

最佳答案

最好在单个文件中使用 Django 模板或 Mustache 模板。解决方案如 django-jstemplate对支持两者都有很大帮助。当您使用 {{ variable }} 时,会出现含义冲突,因为 Django 和 Mustache 都会尝试解释它。请注意这一点。

另一个更简单的选择是将 Mustache 模板包含在 verbatim 中。 block 。 Django 模板不会处理此类 block 。

关于javascript - Javascript可以编译Django的模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com