在输入助手中调用一个ember把手助手

时间:2014-09-16 09:19:56

标签: ember.js

我无法找出在Ember输入助手中调用Ember.Handlebars.registerBoundHelper的正确方法。

BoundHelper执行日期格式化:

Ember.Handlebars.registerBoundHelper('formattedDate', function(date) {
   return moment(date).format('DD.MM.YYYY');
});

我可以在模板中调用帮助程序并获取格式化日期:

{{formattedDate 'myUnformattedDate}}

现在我想在类似于此的输入助手中调用此助手:

{{input type="text" value=orderDate id="orderDate" placeholder="{{formattedDate orderDate}}" }}

在Ember中甚至可以在帮助器中调用助手吗?

- 更新

我正在开发Ember版本1.7.0

1 个答案:

答案 0 :(得分:3)

您可以通过执行类似

的操作来扩展Ember.TextField以创建自己的date-input
App.DateInputComponent = Ember.TextField.extend({
  format: 'DD.MM.YYYY',
  date: function(key, date) {
    var format = this.get('format');
    if (date) {
      this.set('value', moment(date).format(format));
    } else {
      value = this.get('value');
      if (value) {
        date = moment(value, format);
      } else {
        date = null;
      }
    }
    return date;
  }.property('value')
});

然后在你的模板中你可以做...

{{date-input date=date}}
OR
{{date-input date=date format="MM/DD/YYYY"}}

您可以在此处查看工作箱:http://emberjs.jsbin.com/vosen/1/edit

有关进一步的讨论,请参阅:http://discuss.emberjs.com/t/example-building-a-date-input-field/674/4