Writing a helper that produces bound results?

前端 未结 3 1748
忘掉有多难
忘掉有多难 2020-12-09 18:31

I have a date/time formatting helper but what it produces does not update when the underlying property changes. This is not a surprise, but does anyone know how to produce

相关标签:
3条回答
  • 2020-12-09 19:14

    It is now possible to create bound Handlebars helpers using a public Ember API.

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

    The parameter passed to the helper will have already been resolved, and the helper will be called again whenever the path changes.

    0 讨论(0)
  • 2020-12-09 19:29

    Not sure if this applies to this particular question, but I also created helpers in views and wanted the values to update when data in the Ember.js view changed. The way I solved this problem was to write an observer on the values I wanted changed and used jQuery to update the specific value.

    For example (in Coffeescript):

    ...
    
    attrObserver: Ember.observer(() ->
      $("#attrId").text(this.get("attr"))
    
    ...
    
    0 讨论(0)
  • 2020-12-09 19:33

    It is unfortunately more complex than I'd like to create a custom helper with bound content. Here's an example that Peter Wagenet wrote: https://gist.github.com/1563710

    I'll be lobbying for this to become easier.

    0 讨论(0)
提交回复
热议问题