使用 handlebars.js 制作“if x in dict(json)”语句
Posted
技术标签:
【中文标题】使用 handlebars.js 制作“if x in dict(json)”语句【英文标题】:Making a "if x in dict(json)" statement with handlebars.js 【发布时间】:2016-05-25 08:13:05 【问题描述】:
我正在尝试将 Django 模板转换为 Handlebars.js 模板。在我使用的 django 模板中:if forloop.counter in Dinsdag
我正在尝试在 Handlebars.js 中创建一个执行相同操作的自定义助手。这是我目前所拥有的:
helper.js:
Handlebars.registerHelper('isIn', function(waarde, inWaarde)
$.each($.parseJSON(inWaarde), function(k, v)
if (k == waarde)
return options.fn(this);
);
return options.inverse(this);
);
data.js:
$(function()
var templateScript = $("#entry-template").html();
var theTemplate = Handlebars.compile(templateScript);
var context = "dinsdag":
"uitval2":
"7": "1",
"9": "1",
"11": "1"
,
var html = theTemplate(context);
$('.test').html(html);
$(document.body).append(html);
)
index.html:
<html>
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.min.js">
</script>
<script type="text/javascript" src="
https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.js"></script>
<script src="helper.js"></script>
<script src="data.js"></script>
</head>
<body>
<script id="entry-template" type="text/x-handlebars-template">
<ul class="test">
#dinsdag
#isIn 7 uitval2
<p>klopt</p>
else
<p>mwah</p>
/isIn
/dinsdag
</ul>
</div>
</div>
</script>
</body>
</html>
这不会在屏幕上显示任何内容,并给出以下错误:Uncaught SyntaxError: Unexpected token o
希望有人可以提供帮助。请记住,我是 Handlebars.js 的菜鸟
【问题讨论】:
【参考方案1】:所以问题是 Handlebars 自动“字符串化”JSON
。删除 $.parseJSON
并没有解决它,我必须指定它是 JSON
到 jQuery
。 我这样做是这样的:$.each($.parseJSON(JSON.stringify(inWaarde))
【讨论】:
以上是关于使用 handlebars.js 制作“if x in dict(json)”语句的主要内容,如果未能解决你的问题,请参考以下文章