I need help I'm using EJS javasript template to write a code snippet two check a radio button depending on data returned from the server. Let say the server returns a json (named my_data) and here is my code
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ %> <%='checked' %> <% } %> />Public
<input type="radio" name="is_public" value=0 <% if(!my_data.is_public){ %> <%='checked' %> <% } %> />Private
But it doesnt work! the Public is always checked although my_data.is_public = 0.
Any one can help?
btw, are there the way to "echo" a text like this in EJS:
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ echo 'checked' } %> />Public
I need help I'm using EJS javasript template to write a code snippet two check a radio button depending on data returned from the server. Let say the server returns a json (named my_data) and here is my code
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ %> <%='checked' %> <% } %> />Public
<input type="radio" name="is_public" value=0 <% if(!my_data.is_public){ %> <%='checked' %> <% } %> />Private
But it doesnt work! the Public is always checked although my_data.is_public = 0.
Any one can help?
btw, are there the way to "echo" a text like this in EJS:
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ echo 'checked' } %> />Public
Share
Improve this question
asked Feb 3, 2012 at 3:07
Leo LerdorfLeo Lerdorf
1,3844 gold badges15 silver badges20 bronze badges
2 Answers
Reset to default 8EJS is a simple and easy to use engine, and does not need to put too much learning cost on the template. If you look at the source, you'll find something funny.
// the same as echo string
__append(string)
So:
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ __append('checked') } %> />Public
Never used EJS, but from experience from other templating engines, this should work:
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ %> checked="checked" <% } %> />Public
<input type="radio" name="is_public" value=0 <% if(!my_data.is_public){ %> checked="checked" <% } %> />Private
When you say <%=
, you are to output the result of a JavaScript evaluation that follows. E.g. <%= a %>
should output the contents of variable a
at that time.
There's no need for explicit echo in templates - anything outside <% %>
should be echoed by default, of course considering that some blocks are conditionally echoed, like the above if
, or may be multiplied when using loops, etc.