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

Emberjs связывают атрибуты данных

Мне интересно, есть ли способ привязать атрибуты данных в шаблоне при вызове представления.

Например (это не работает):

 {{ view App.SomeView data-dateBinding="currentDate" }}

Я закончил так:

<a {{bindAttr data-date="currentDate"}}></a>

Должен быть способ сделать это при вызове представления?

4b9b3361

Ответ 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. Дает уверенность в ценности хорошего тестирования, видя, как иногда он служит лучшей документацией.