2015-02-26 4 views
2

Я написал помощник Ember/Рули для форматирования даты с помощью Moment.js:Binding выход из помощника Ember до значения входного помощника Ember

Ember.Handlebars.registerBoundHelper('formattedDate', function(date, format) { 
    var formattedDate = moment(date).format(format); 
    return new Handlebars.SafeString(formattedDate); 
}); 

Теперь я хочу, чтобы использовать это в тандеме с Ember входного помощника, как так (где STARTDATE это свойство на модели в объеме):

{{input id="startDatePicker" class="form-control" value={{formattedDate startDate 'MMM D'}} required=true}} 

Но это не работает, и бросает синтаксическую ошибку. Есть какой-либо способ сделать это?

ответ

2

Вы можете избежать синтаксической ошибки, используя подвыражение (подробнее о подвыражениях).

Таким образом, вы могли бы сделать:

{{input id="startDatePicker" class="form-control" value=(formattedDate startDate 'MMM D')}}

в какой момент вы не получите синтаксическую ошибку, но она по-прежнему будет вести себя странно. Вместо этого я предлагаю вам вместо этого реализовать вычисляемое свойство для форматированной даты. Смотрите следующий ответ, который я недавно дал, что должно дать вам хорошую отправную точку

https://stackoverflow.com/a/28774170/908842

+0

Спасибо за ответ. Похоже, что подвыражения действительно не работают для boundHelpers, хотя, только обычные помощники. Но я использовал ваше второе предложение и только что создал свойство компьютера в контроллере. Мой помощник должен был помочь мне избежать необходимости в этом рассчитанном свойстве в нескольких разных контроллерах, но хорошо. – user1224298

Смежные вопросы