Ответ 1
Что вы ищете, это помощник-помощник. Используя его, ваш второй пример станет следующим:
{{#my-modal modal-id=(concat 'add-item-' title) header=(concat 'New ' title)}}
<p>My body blabla</p>
{{/my-modal}}
Я пытаюсь создать простой модальный компонент в 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}}
".
Что вы ищете, это помощник-помощник. Используя его, ваш второй пример станет следующим:
{{#my-modal modal-id=(concat 'add-item-' title) header=(concat 'New ' title)}}
<p>My body blabla</p>
{{/my-modal}}
Да, прохождение в заголовке - это то, как я это делаю. Если вам нужно добавить что-то в заголовок, которое больше, чем просто 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 для модального в любом случае?