amatiasq
2/5/2013 - 12:06 AM

This allow Handlebars to look up Backbone Model's attributes: {{ user.address.street }} If user is a Backbone Model this will become

This allow Handlebars to look up Backbone Model's attributes:

{{ user.address.street }}

If user is a Backbone Model this will become

user.get("address").street

And if user.get("adress") is also a Backbone Model this will be produced:

user.get("address").get("street")

Handlebars.JavaScriptCompiler.prototype.nameLookup = function(parent, name, type) {
	var result = '(' + parent + ' instanceof Backbone.Model ? ' + parent + '.get("' + name + '") : ' + parent;
	if (/^[0-9]+$/.test(name)) {
		return result + "[" + name + "])";
	} else if (Handlebars.JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
		return result + "." + name + ')';
	} else {
		return result + "['" + name + "'])";
	}
};