135

Handlebars.js 模板中有没有办法在遍历列表/集合之前检查集合或列表是否为空或空?

// if list is empty do some rendering ... otherwise do the normal
{{#list items}}

{{/list}}



{{#each items}}

{{/each}}
4

5 回答 5

255

如果您想要显示一次仅当数组有数据时,请使用

{{#if items.length}}
    //Render
{{/if}}

.length将为空数组返回 0,因此我们获得了真正的虚假值。

于 2014-02-06T18:29:04.563 回答
225

“each”标签也可以包含“else”部分。所以最简单的形式是:

{{#each items}}
// render item
{{else}}
// render empty
{{/each}}
于 2012-07-22T01:11:44.363 回答
39

好的,这比我想象的要简单:

{{#if items}}
// render items

{{#each items}}
// render item
{{/each}}

{{else}}
// render empty
{{/if}}
于 2012-04-30T11:47:57.697 回答
8

如果要检查集合(光标)是否为空,则以前的答案将没有用,而是必须使用count()方法:

{{#if items.count}}
    <p>There is {{items.count}} item(s).</p>
{{else}}
    <p>There is nothing</p>
{{/if}}
于 2015-06-22T07:06:11.243 回答
2

对于需要在 {{#if}} 之上使用 {{#each}} 的任何人(即 for 循环内的 if 循环)。他们是否有三个不同的数组列表。

在 if 语句中使用查找为我解决了这个问题。因为,上面的答案并没有解决我的问题。

这是我的代码,

{{#each OtherRandomItems}}

  {{this}}

  {{lookup ../AnotherRandomItems @index}}

  {{#if (lookup ../RandomItems @index)}}
  // render items
  {{else}}
  // render empty
  {{/if}}

{{/each}}
于 2017-12-04T11:25:55.533 回答