如何在ejs中发送对象作为函数参数

时间:2015-12-22 06:55:26

标签: angularjs node.js mongodb mean ejs

如何在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>
    <% }) %>  
    <% } %>

2 个答案:

答案 0 :(得分:1)

看起来<%= %>字符串化了Syntax Error: Token 'Object' is unexpected, expecting []] at column 16 of the expression [test([object] starting at [{4}]. 标记内的内容。当我尝试你的代码时,我收到了这个错误:

<button ng-click="test(<%= JSON.stringify(usr) %>)">

所以我无法重现你的未定义&#34;行为。

然而,看起来有一种方法可以让它发挥作用:

test

ng-click="test(<%= usr.id %>)" 函数实际上在这里接收一个对象,而不是字符串。

或者,您只能将用户的id传递给delete函数,如下所示:

public void enterValues(Scanner scan, ArrayList<Double> values){
    Double dValue= (double) 0;
    do{
        System.out.println("Enter value to convert: £");
        dValue= scan.nextDouble();
        if(dValue != -1)
            values.add(dValue);
    }while(dValue != -1);

    System.out.println("Values entered. Returning to main menu.");
    mainMenu(scan, values);
}

答案 1 :(得分:0)

您可以通过渲染模板发送任何数据。

   res.render("myPage",{title:"String",age:Number,userlist:[{},{},{}]}})