[英]How to check whether object is empty in handlebars if statement?
In handlebars i need to check if an object is empty and if it isn't then i need to run a loop to grab the content from the object.在车把中,我需要检查一个对象是否为空,如果不是,那么我需要运行一个循环来从该对象中获取内容。 Below is my code and a link to codepen.
下面是我的代码和 codepen 的链接。 I imagine this is quite simple but nothing seems to work.
我想这很简单,但似乎没有任何效果。 I would have thought that the handlebars #if statement would see an empty object as undefined or 0 and ultimately the condition would be unfulfilled.
我原以为车把 #if 语句会将空对象视为未定义或 0,最终条件将无法满足。
<div class="temp"></div>
<script id="temp" type="x-handlebars-template">
{{#if tabs}}
<p>true</p>
{{/if}}
</script>
var template = Handlebars.compile($("#temp").html());
var tabs = {};
var context = {
tabs: tabs
}
$('.temp').html(template(context));
http://codepen.io/matt3224/pen/gaKyKv?editors=101 http://codepen.io/matt3224/pen/gaKyKv?editors=101
You can just use the built in handlebars each
helper to accomplish what you're looking for, and you can even conditionally render something with an empty object:您可以使用
each
助手的内置把手来完成您正在寻找的内容,您甚至可以使用空对象有条件地渲染某些内容:
var template = Handlebars.compile($("#temp").html()); var tabs = {}, test = {a: "Resources", b: "Contact"}; var context = { tabs: tabs, test: test } $('.temp').html(template(context));
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js"></script> <div class="temp"></div> <script id="temp" type="x-handlebars-template"> <h3>each helper on empty object</h3> {{#each tabs}} <p>Key: {{@key}} Value = {{this}}</p> {{else}} <p>Your tabs object is empty!</p> {{/each}} <h3>each helper on non-empty object</h3> {{#each test}} <p>Key: {{@key}} Value = {{this}}</p> {{else}} <p>Your test object is empty!</p> {{/each}} </script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.