编写一个产生绑定结果的帮助器?

Jon*_* M. 13 mustache ember.js

我有一个日期/时间格式助手,但它产生的内容在基础属性更改时不会更新.这并不奇怪,但有谁知道如何在助手中生成绑定?

我像这样调用助手......

{{timestamp created_at}}
Run Code Online (Sandbox Code Playgroud)

......这是助手本身:

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>");
}); 
Run Code Online (Sandbox Code Playgroud)

Yeh*_*atz 27

现在可以使用公共Ember API创建绑定的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>");
});
Run Code Online (Sandbox Code Playgroud)

传递给帮助程序的参数已经解析,并且只要路径发生更改,就会再次调用帮助程序.


ebr*_*ryn 10

不幸的是,比我想创建一个带有绑定内容的自定义帮助程序更复杂.以下是Peter Wagenet写的一个例子:https://gist.github.com/1563710

我会游说这个变得更容易.

  • @nembleton看到我的回答.绑定助手现在是Ember功能. (3认同)