ember.js - name - ¿Una buena manera de concatear cadenas y variables en el argumento de ayuda de Handlebars.js?
ember on hover (3)
Llegué aquí buscando un ayudante de concat
en handlebars.js. En caso de que sea útil para alguien que aterrice aquí buscando lo mismo, manillares-ayudantes tiene un ayudante append
incorporado.
{{> my-modal modal-id=(append "add-item-" title) header=(append "New " title)}}
Estoy tratando de construir un componente modal simple en Ember, pero parece que el "sin lógica" de Handlebars es demasiado ilógico para mí. ¿Hay alguna manera sensata de lograr un resultado de alguna manera?
<h2>Nice block about {{title}}</h2>
<a href="#" data-toggle="modal" id="add-item-{{title}}"> {{!this works}}
{{#my-modal modal-id="add-item-{{title}}" header=''New {{title}}''}} {{! those don''t}}
<p>My body blabla</p>
{{/my-modal}}
Actualmente termino obteniendo mi identificación modal como "add-item-{{title}}"
, literalmente, así como el título modal.
Y ... no, por ahora no estoy considerando pasar el "título" como un nuevo parámetro y usarlo en el modal. El encabezado modal en otra plantilla podría no ser "Nuevo {{título}}" pero "¿estás seguro?" o "detalles sobre {{title}}
".
Lo que estás buscando es el ayudante de concat . Usándolo, tu segundo ejemplo sería:
{{#my-modal modal-id=(concat ''add-item-'' title) header=(concat ''New '' title)}}
<p>My body blabla</p>
{{/my-modal}}
Sí, pasar en el título es como lo hago. Si necesita agregar algo al título que sea más que solo model.title
, entonces rellene una propiedad computada en su controlador (sintaxis de interpolación de cadenas es6):
controlador
modalHeader: function() {
return `New ${this.get(''model.title'')}`;
}.property(''model.title'')
modelo
{{#my-modal header=modalHeader}}
<p>My body blabla</p>
{{/my-modal}}
En cuanto a la identificación, puede hacer algunas cosas divertidas en el componente para anularlo, vea este código de código , pero no sé cómo se mete con la ascua. ¿Por qué quieres configurar una identificación para un modal de todos modos?