我有一个日期/时间格式化帮助程序,但是当基础属性更改时,它生成的内容不会更新。这不足为奇,但是有人知道如何在助手中产生绑定(bind)吗?
我像这样调用助手
{{timestamp created_at}}
...这是助手本身:
Handlebars.registerHelper('timestamp', function(context, options) {
var formatter = options.hash['format'] ? options.hash['format'] : 'hh:mm a MM-DD-YYYY';
var original_date = Ember.getPath(this, context); // same as this.get(context) ?
var parsed_date = moment(original_date);
var formatted_date = parsed_date.format(formatter);
return new Handlebars.SafeString("<time datetime=" + original_date +">" + formatted_date + "</time>");
});
最佳答案
现在可以使用公共(public)Ember API创建绑定(bind)的Handlebars帮助器。
Handlebars.registerBoundHelper('timestamp', function(date, options) {
var formatter = options.hash['format'] ? options.hash['format'] : 'hh:mm a MM-DD-YYYY';
var parsed_date = moment(date);
var formatted_date = parsed_date.format(formatter);
return new Handlebars.SafeString("<time datetime=" + date +">" + formatted_date + "</time>");
});
传递给帮助程序的参数将已经解析,并且每当路径更改时都会再次调用该帮助程序。
关于ember.js - 写一个可以产生有限结果的助手?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8837958/