我有一个如下模板:-
<div class= "comment-form m-2">
{% include "includes/comment_reply_form.html" %}</div>
如果用户通过了身份验证,则html将显示表单。但是,如果用户未登录,我想显示一个“登录”按钮。我正在通过以下javascript处理相同的内容。
$(".comment-reply-btn").click(function(event){
event.preventDefault();
if (user_is_authenticated === false) {
$(".comment-form").html('{% include "includes/reply.html" %}');
$(this).parent().next(".comment-reply").fadeToggle();
}
else {
$(this).parent().next(".comment-reply").fadeToggle();
}
});
但是,它没有在网页中显示{%include“ includes / reply.html”%},而不是在reply.html中包含html。 javascript没有问题,如果我添加
<p> You need to Login </p>
在下面的行中。效果很好:-
$(".comment-form").html('{% include "includes/reply.html" %}');
但是,由于我的reply.html中需要更多选项,因此我希望将其添加为包含。我曾尝试在{前面使用转义字符“ /”,但这无济于事。
答案 0 :(得分:0)
不熟悉,但是尝试
<div class= "comment-form m-2">
<script>
document.write('{% include "includes/comment_reply_form.html" %}')
</script>
</div>
答案 1 :(得分:0)
不是将包含值包含在javascript函数中,而是将其显示在html中,例如display = none
<div id="comment-reply-form-template">
{% include "includes/comment_reply_form.html" %}
然后,在您的JavaScript中,您随时可以在需要时克隆已呈现的表单...
或者您可以制作一个自定义模板标签,该标签将以javascript字符串样式打印带有一堆''+''+''的html
或者可能会研究新的es6模板字符串 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/template_strings
我认为会像
`{% include "includes/comment_reply_form.html" %}`
使用`字符