Respuestas:
La etiqueta "cada" puede tomar una sección "más" también. Entonces la forma más simple es:
{{#each items}}
// render item
{{else}}
// render empty
{{/each}}
Si tiene algo que desea mostrar una vez y solo si la matriz tiene datos , use
{{#if items.length}}
//Render
{{/if}}
.length
devolverá 0 para matrices vacías, por lo que hemos logrado un valor de falsey real.
<ul>
etiqueta una vez y una <li>
etiqueta para cada elemento de la lista. Si la lista está vacía, ni siquiera quiero <ul>
que se procese, y no tiene sentido representar algo más como <p>empty list<p>
dentro <ul>
.
[]
se evalúa como falso. La respuesta de @Drejc es la respuesta correcta según la especificación del manillar.
Ok, es más simple de lo que pensaba:
{{#if items}}
// render items
{{#each items}}
// render item
{{/each}}
{{else}}
// render empty
{{/if}}
items
es una matriz vacía (es decir, tiene un valor de []
), producirá un valor verdadero. Mientras que items.length
produce un valor falsey para una matriz vacía. Ver la respuesta de @ Duane .
if
, pero la documentación manillares es muy clara: 'Si vuelve a su argumento false
, undefined
, null
, ""
, 0
, o []
, manillares no van a hacer que el bloque'. Debería haber revisado los documentos primero.
Si desea verificar si una colección (cursor) está vacía o no, las respuestas anteriores no serán útiles, en su lugar debe usar el count()
método:
{{#if items.count}}
<p>There is {{items.count}} item(s).</p>
{{else}}
<p>There is nothing</p>
{{/if}}
Para cualquiera que necesite usar un {{#each}} encima de {{#if}} (es decir, un bucle if dentro de un bucle for). ¿Tienen tres listas diferentes de matrices?
Usar una búsqueda dentro de una declaración if me resuelve el problema. Como, las respuestas anteriores no resolvieron mi problema.
Aquí está mi código
{{#each OtherRandomItems}}
{{this}}
{{lookup ../AnotherRandomItems @index}}
{{#if (lookup ../RandomItems @index)}}
// render items
{{else}}
// render empty
{{/if}}
{{/each}}
#each
, como una<ul>
etiqueta (con<li>
s dentro), no desea que el estado vacío quede envuelto por<ul>
.