Emberjs связывают атрибуты данных
Мне интересно, есть ли способ привязать атрибуты данных в шаблоне при вызове представления.
Например (это не работает):
{{ view App.SomeView data-dateBinding="currentDate" }}
Я закончил так:
<a {{bindAttr data-date="currentDate"}}></a>
Должен быть способ сделать это при вызове представления?
Ответы
Ответ 1
Вы должны определить в App.SomeView, какие атрибуты вы хотите поместить в HTML.
App.SomeView = Ember.View.extend({
attributeBindings: ["data-date"]
.... rest of view
})
Теперь data-dateBinding
должен работать:
{{view App.SomeView data-dateBinding="currentDate" }}
Ответ 2
Подробнее о отличном ответе от @kurt-ruppel.
Пример с использованием :
для описания свойства привязки атрибута, полностью сделанного из представления.
App.SomeView = Ember.View.extend({
attributeBindings: ["date:data-date"],
date: function() { return '1642-12-06' }
.... rest of view
})
Шаблон пылесоса.
{{view App.SomeView}}
Ответ 3
FWIW - и это в ответ на комментарии @sly7_7 от верхнего ответа - можно указать привязку атрибута data- * в самом представлении, а не устанавливать его в шаблоне.
Подобно classNameBindings
, вы можете добавить предпочтительное значение к атрибуту, соединяя значения с символом ':'. Лучшее место, чтобы увидеть это в действии, вероятно, находится в соответствующих тестах ember.js. Дает уверенность в ценности хорошего тестирования, видя, как иногда он служит лучшей документацией.