ejs-locals icon indicating copy to clipboard operation
ejs-locals copied to clipboard

add contentFor

Open sr3d opened this issue 11 years ago • 3 comments

Inspired by ejs-layout, I update the code to support contentFor block with following syntax:

inside the view

<%- contentFor('leftNav') -%>
<ul>
 ...
</ul>

<%- contentFor('someOtherSection') -%>
....

inside the layout

<%- contentFor.leftNav -%>
.. // snipped ...
<%- contentFor.someOtherSection -%>

sr3d avatar Mar 01 '13 00:03 sr3d

Sounds great! Apologies if it takes a few days to get to testing/merging this. Thanks for the contribution!

RandomEtc avatar Mar 01 '13 18:03 RandomEtc

+1

medanat avatar Mar 16 '13 23:03 medanat

This would be awesome. I'm wondering about one thing, when is stopped the code included into a contentFor in the View?

I mean, if I want to set some contentFor, in the example it looks like it pass all the code until the next contentFor. But what if I want to have some kind of end to have source code that won't be in any contentFor?

<%- contentFor('leftNav') -%>
<ul>
 ...
</ul>
// Stop it, the block for leftNav ends here.
<%- contentForEnd('leftNav') -%>

// This isn't in any contentFor block.
<div>tralala</div>

// Another contentFor block?
<%- contentFor('someOtherSection') -%>
....

Here we could end a block manually to stop and it would allow to have some code after the block that belongs to the view.

The issue with the current solution is that we need to set the contentFor blocks at the end of the file, else we wouldn't be able to "stop" a block. I hope I've been clear.

Vadorequest avatar Aug 17 '14 21:08 Vadorequest