Skip to content

Some changes to allow scoped overrides and direct use of template functions#19

Open
fmarsoni wants to merge 1 commit intoedspencer:masterfrom
fmarsoni:master
Open

Some changes to allow scoped overrides and direct use of template functions#19
fmarsoni wants to merge 1 commit intoedspencer:masterfrom
fmarsoni:master

Conversation

@fmarsoni
Copy link
Copy Markdown

@fmarsoni fmarsoni commented Feb 8, 2012

This allow to write:

Jaml.render(function(data) { div(....) }, data);
to easily use a template without registering it

Jaml.register('tmpl', function(data) {....});
Jaml.render({tmpl: function(data) { div(....) }}, 'tmpl', data);
to ovveride a template without overwriting already registered template

A slightly more complex example:
Jaml.register('tmpl', function(data) { p(....)});
Jaml.register('tmpl2', function(data) { div(render('tmpl', data))});
Jaml.render({
tmpl: function(data) { div(....) }
}, 'tmpl2', data); -> <div><div>....</div></div>
Jaml.render('tmpl2', data); -> <div><p>....</p></div>

To allow "render" function in place of Jaml.render I had to rename "render" method in Jaml.Template to "_render".
I changed tests according to it and added two more.

This is just an idea, even if I'm using theese changes in a large project where I need to improve reusability of templates and avoid accidental overwrites.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant