2015-12-22 2 views
1

Как отправить объект в качестве пареметра в ejs. когда я пытаюсь отправить объект в параметр для функции тестирования, он печатает undefined.Как отправить объект в ejs как параметр функции

</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> 
    <% }) %> 
    <% } %> 
+0

Неясно, что вы просите, отправить кому и какой объект? –

+0

отправьте объект в функцию углового испытания в качестве параметра. здесь: ng-click = 'test (<%= usr %>)' –

+0

Похоже, то, что вы делаете, должно работать нормально. Укажите имя пользователя и адрес электронной почты в таблице? Не могли бы вы также показать свою функцию «Проверка» AngularJS? –

ответ

1

Похоже ejs stringifies все, что находится внутри тега <%= %>. Когда я попробовал ваш код, я получил эту ошибку:

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) %>)"> 

test функция фактически получает объект здесь, а не строка.

В качестве альтернативы, можно передать только идентификатор пользователя к функции удаления, как это:

ng-click="test(<%= usr.id %>)" 
0

Вы можете отправлять любые данные с помощью шаблонов рендеринга.

res.render("myPage",{title:"String",age:Number,userlist:[{},{},{}]}}) 
Смежные вопросы