Я хотел бы создать динамическое имя класса для объекта со значением, которое я получаю от своей модели. Один из ключей называется provider
, который содержит либо «твиттер», либо «facebook». То, что я хотел бы сделать, - это добавить строку «icon-» к провайдеру, чтобы получившийся класс был icon-twitter
или icon-facebook
.Создание динамической строки с bindAttr
Это код, который у меня есть.
<i {{bindAttr class=":avatar-icon account.provider"}}></i>
Ember предлагает способ включить статическую строку в атрибуте, предваряя :
к нему. Вы можете видеть, что я также добавляю класс, называемый avatar-icon
в этом примере. Я уже пробовал :icon-account.provider
, который просто привел к литеральной строке «icon-account.provider».
ОТВЕТ Ницца. Я сейчас работаю над решением, похожим на ваш ответ. Вопрос: этот взгляд будет использоваться в контексте каждого цикла. Как передать текущий элемент, который будет использоваться в представлении? У меня есть это прямо сейчас:
{{#each account in controller}} {{#view "Social.AccountButtonView"}} <i {{bindAttr class="account.provider"}}></i> {{/view}} {{/each}}
Можно просто сделать это:
{{#view "Social.AccountButtonView" account="account"}}
?
Я считаю, что вам нужно будет что-то вроде '{{#view" Social.AccountButtonView "accountBinding =" account "}} ... {{view}} '. Я считаю, что «учетная запись» в этом случае будет недоступна изнутри дочернего представления, поэтому из представления вы должны ссылаться на это как «view.account» – MilkyWayJoe