{{#each groups as |group|}}
{{#eq group.name "AwesomeName"}}
<div>¡Hay una coincidencia!</div>
{{/eq}}
{{/each}}
Esto no funciona. (No se muestran errores.)
Probé la solución aquí, que intenta usar “makeBoundHelper”, pero tampoco funciona para mí; en ese caso obtengo errores indicando que “makeBoundHelper” no es una función.
Solo quiero poder hacer una sentencia if para comparar una cadena con un valor. ¿Cómo lo hago?
Las propiedades computadas son interesantes, pero no veo la conexión con lo que me estoy enfocando aquí.
En mi ejemplo, la propiedad clave es group.name y quiero evaluar en la plantilla si esa propiedad coincide con “AwesomeName”. No estoy seguro de cómo las propiedades computadas podrían evitar la necesidad de usar un tipo específico de sentencia {{if}} en la plantilla que no he podido resolver.
Las plantillas de Handlebars solo tienen lógica booleana rudimentaria. Puedes realizar comprobaciones de valores truthy.
Para realizar operaciones más complejas, debes ejecutar la lógica en el archivo JS de Ember asociado a la plantilla.
Por ejemplo, si tienes una plantilla en templates/components/my-component.hbs, deberás utilizar el archivo JS components/my-component.js para realizar el cálculo.
Aún no he logrado que funcione del todo, en parte porque no encuentro ejemplos por ahí de cómo usar propiedades calculadas para este tipo de operación.
En mi caso, dentro de mi plugin, estoy realizando el cambio en la plantilla del índice de grupos. Es decir, en el archivo: plugin/assets/javascripts/discourse/groups/index.hbs (simplemente coloqué todo el código del índice de grupos allí y agregué los cambios encima).
¿Te refieres a que el archivo JS de la propiedad calculada debería ir en un archivo que yo cree llamado: plugin/assets/javascripts/discourse/groups/index.js? ¿O puedo simplemente poner ese código en un inicializador?
Este es mi mejor intento para implementar lo que mencionas, ¿es esto lo que tenías en mente:
{{#if property}}
<div>¡Sí, hay una coincidencia!</div>
{{/if}}
¿O querías decir que debería ingresar literalmente valores generales como “string1” y “string2” en @discourseComputed y luego cambiar la plantilla a {{#if property group.name "Amazing_Name"}}? (Solo de esa manera podría tener en cuenta que cada valor es dinámico en la plantilla.)
Aún no he logrado que funcione del todo con ninguno de los dos enfoques.
¿Has logrado que funcione? Necesito un ejemplo detallado de cómo hacerlo (qué contenido añadir, en qué archivo y en qué parte de ese archivo, si es relevante).
En realidad, nunca logré que esto funcionara por mí mismo y tuve que seguir adelante. Parecía absurdo dedicar tanto tiempo a lo que normalmente sería un ejercicio de codificación básico. En mi caso, creo que probablemente fue un poco de sintaxis incorrecta aquí y otra allá, pero nunca encontré ejemplos completos que funcionaran. También estaría agradecido por un ejemplo completo y funcional de cómo hacer un if string === string.