Actualmente estoy tratando de escribir un bloque if else en los controles para una parte de mensajería de mi aplicación de redes sociales. Estoy pasando mensajes del controlador y, para el ejemplo que estoy usando, hay una matriz vacía, pero por alguna razón sigue yendo a la instrucción else. He intentado varias combinaciones diferentes para que esto funcione, pero sigue yendo a la declaración else. ¿Qué estoy haciendo mal?
{{#if messages.length}} <p>if statement</p> <div class="message-container card" id="{{this._id}}"> <p> Start a new conversation </p> </div> {{else}} <p>else statement</p> {{#each messages}} <div class="message-container card" id="{{this._id}}"> <div class="profile-picture"> <img src={{user.profilePicture}} width="100" height="100" class="rounded-circle"/> </div> <div class="message-header"> <span class="name">{{this.sender.firstName}} {{this.sender.lastName}}</span> <div class="date-sent">{{this.createdAt}}</div> </div> <div class="post-body"> <p class="message"> {{this.message}} </p> </div> </div> {{/each}} {{/if}}Sí. Eso es correcto. Si hay una matriz vacía, debe ir a la declaración else porque una matriz vacía tendrá una longitud de 0 , que es falsy .
En tu código tienes
{{#if messages.length}} print this if array is not empty because message.length is not zero {{#else}} print this if array is empty because message.length is zero {{/if}}Por lo que se está comportando correctamente.
Si tiene la intención de hacer lo contrario, intercambie el código dentro de los bloques if y else o reemplace #if con #unless .