3

我需要帮助我正在使用 EJS javasript 模板编写代码片段,根据从服务器返回的数据检查单选按钮。假设服务器返回一个 json(名为 my_data),这是我的代码

<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

但它不起作用!尽管 my_data.is_public = 0,但始终检查 Public。

任何人都可以帮忙吗?

顺便说一句,有没有办法在 EJS 中“回显”这样的文本:

<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ echo 'checked' } %> />Public
4

2 回答 2

7

EJS 是一个简单易用的引擎,不需要在模板上投入太多的学习成本。如果您查看源代码,您会发现一些有趣的东西。

// the same as echo string
__append(string)         

所以:

<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ __append('checked') } %> />Public
于 2018-03-17T10:31:11.020 回答
6

从未使用过 EJS,但根据其他模板引擎的经验,这应该可以工作:

<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

当您说 时<%=,您将输出随后的 JavaScript 评估结果。例如应该在那个时候<%= a %>输出变量的内容。a

模板中不需要显式回显 -<% %>默认情况下应该回显外部的任何内容,当然考虑到某些块是有条件地回显的,例如上面if,或者在使用循环时可能会相乘等。

于 2012-02-03T04:12:45.873 回答