如何在ejs中将对象作为函数参数发送
How to send object in ejs as function parameter
如何在 ejs 中将对象作为参数发送。当我尝试为测试函数发送参数中的对象时,它会打印 undefined 。
</tr>
<% userlist.forEach(function(usr){ %>
<tr>
<td><input readonly type="text" value="<%= usr.name %>"></td>
<td><input readonly type="text" value="<%= usr.email %>"></td>
<td style="cursor:pointer">
<i title="edit data" style="padding-right:18px" class="fa fa-pencil"></i>
<i title="delete" ng-click='test(<%= usr %>)' class="fa fa-trash"></i></td>
</tr>
<% }) %>
<% } %>
您可以通过渲染模板发送任何数据。
res.render("myPage",{title:"String",age:Number,userlist:[{},{},{}]}})
看起来 ejs
字符串化了 <%= %>
标签内的任何内容。当我尝试你的代码时,我得到了这个错误:
Syntax Error: Token 'Object' is unexpected, expecting []] at column 16 of the expression [test([object] starting at [{4}].
所以我无法重现您的 "undefined" 行为。
不过,似乎有一种方法可以让它发挥作用:
<button ng-click="test(<%= JSON.stringify(usr) %>)">
test
函数这里实际上接收的是一个对象,而不是字符串。
或者,您可以只将用户 ID 传递给删除函数,如下所示:
ng-click="test(<%= usr.id %>)"
如何在 ejs 中将对象作为参数发送。当我尝试为测试函数发送参数中的对象时,它会打印 undefined 。
</tr>
<% userlist.forEach(function(usr){ %>
<tr>
<td><input readonly type="text" value="<%= usr.name %>"></td>
<td><input readonly type="text" value="<%= usr.email %>"></td>
<td style="cursor:pointer">
<i title="edit data" style="padding-right:18px" class="fa fa-pencil"></i>
<i title="delete" ng-click='test(<%= usr %>)' class="fa fa-trash"></i></td>
</tr>
<% }) %>
<% } %>
您可以通过渲染模板发送任何数据。
res.render("myPage",{title:"String",age:Number,userlist:[{},{},{}]}})
看起来 ejs
字符串化了 <%= %>
标签内的任何内容。当我尝试你的代码时,我得到了这个错误:
Syntax Error: Token 'Object' is unexpected, expecting []] at column 16 of the expression [test([object] starting at [{4}].
所以我无法重现您的 "undefined" 行为。
不过,似乎有一种方法可以让它发挥作用:
<button ng-click="test(<%= JSON.stringify(usr) %>)">
test
函数这里实际上接收的是一个对象,而不是字符串。
或者,您可以只将用户 ID 传递给删除函数,如下所示:
ng-click="test(<%= usr.id %>)"