在输入帮助器中调用一个Ember handlebars帮助器 [英] call an ember handlebars helper within an input helper

查看:110
本文介绍了在输入帮助器中调用一个Ember handlebars帮助器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道在Ember输入帮助程序中调用Ember.Handlebars.registerBoundHelper的正确方法。



BoundHelper执行日期格式: / p>

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

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

  {{formattedDate'myUnformattedDate}} 

现在我想在一个类似于这个的输入帮助器中调用这个帮助:

  {{input type =文本value = orderDate id =orderDateplaceholder ={{formattedDate orderDate}}}} 

甚至可能在Ember中调用帮助者?



- 更新



我正在Ember 1.7.0开发

解决方案

您可以扩展 Ember.TextField 通过执行

  c创建自己的日期输入 code> App.DateInputComponent = Ember.TextField.extend({
格式:'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;
}
}
返回日期;
} .property('value')
});

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

  {{date-input date = date}} 
OR
{{date-input date = date format =MM / DD / YYYY你可以在这里看到一个工作的垃圾箱:

jsbin.com/vosen/1/editrel =nofollow> http://emberjs.jsbin.com/vosen/1/edit



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


I can't figure out the right way to call an Ember.Handlebars.registerBoundHelper within an Ember input-helper.

The BoundHelper does a date formatting:

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

I can call the helper in a template and get a formatted date:

{{formattedDate 'myUnformattedDate}}

Now I would like to call this helper within an input-helper similar to this:

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

Is calling a helper within a helper even possible in Ember?

-- Update

I'm developing in Ember version 1.7.0

解决方案

You can extend Ember.TextField to create your own date-input by doing something like

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')
});

and then in your template you can do...

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

You can see a working bin here: http://emberjs.jsbin.com/vosen/1/edit

For further discussion see: http://discuss.emberjs.com/t/example-building-a-date-input-field/674/4

这篇关于在输入帮助器中调用一个Ember handlebars帮助器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆