Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Ember Handlebars Transform Helper
Ember.HandlebarsTransformView = Ember.View.extend(Ember.Metamorph, {
rawValue: null,
transformFunc: null,
value: function(){
var rawValue = this.get('rawValue'),
transformFunc = this.get('transformFunc');
return transformFunc(rawValue);
}.property('rawValue', 'transformFunc').cacheable(),
render: function(buffer) {
var value = this.get('value');
if (value) { buffer.push(value); }
},
needsRerender: function() {
this.rerender();
}.observes('value')
});
Ember.HandlebarsTransformView.helper = function(context, property, transformFunc, options) {
options.hash = {
rawValueBinding: property,
transformFunc: transformFunc
};
return Ember.Handlebars.ViewHelper.helper(context, Ember.HandlebarsTransformView, options);
};
Ember.Handlebars.registerHelper('format', function(property, options) {
var transformFunc = function(value) {
return (value && value.format) ? value.format() : value;
};
return Ember.HandlebarsTransformView.helper(this, property, transformFunc, options);
});
// This one is untested but should work
Ember.Handlebars.registerHelper('datetime', function(property, options) {
var format = options.hash.format,
transformFunc = function(value) {
return (value && value.format) ? value.format(format) : value;
};
return Ember.HandlebarsTransformView.helper(this, property, transformFunc, options);
});
/*
* Example:
*
* var now = moment().add('days', 9);
* {{datetime now format="dddd, MMMM Do YYYY"}}
* Friday, January 13th 2012
*/
@jeremyosborne

I have been using this snippet for quite some time, and I'm currently trying to upgrade to the 1.0 pre code. I've got everything else working except this bit of code, and I haven't been able to figure out what has changed, or even if this code is still needed. In line 1 I've tried mixing in Ember._Metamorph and Ember._MetamorphView but to no avail. Any suggestions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.