Подтвердить что ты не робот

Неправильный способ конкатцирования строки и переменной в аргументе хелпера Handlebars.js?

Я пытаюсь создать простой модальный компонент в Ember, но, похоже, для меня нелогично для логики "логика-меньше". Есть ли разумный способ добиться результата несколько?

<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}}

В настоящее время я заканчиваю тем, что мой модальный идентификатор "add-item-{{title}}", буквально, также как и модальный заголовок.

И... нет, на данный момент я не рассматриваю передачу "title" в качестве нового параметра и использование его в модальном режиме. Модальный заголовок в другом шаблоне может быть не "Новый {{title}}", но "вы уверены?" или "подробности о {{title}}".

4b9b3361

Ответ 1

Что вы ищете, это помощник-помощник. Используя его, ваш второй пример станет следующим:

{{#my-modal modal-id=(concat 'add-item-' title) header=(concat 'New ' title)}} 
  <p>My body blabla</p>
{{/my-modal}}

Ответ 2

Да, прохождение в заголовке - это то, как я это делаю. Если вам нужно добавить что-то в заголовок, которое больше, чем просто model.title, тогда запишите вычисленное свойство на вашем контроллере (синтаксис интерполяции строки es6):

контроллер

  modalHeader: function() {
    return `New ${this.get('model.title')}`;
  }.property('model.title')

шаблон

{{#my-modal header=modalHeader}}
  <p>My body blabla</p>
{{/my-modal}}

Что касается id, вы можете сделать некоторые забавные вещи в компоненте, чтобы переопределить его, см. этот код, но я не знаю как это смешивается с ember. Почему вы хотите установить id для модального в любом случае?