Вызовите массив jaggery внутри javascript

У меня есть файл jag, который будет содержать массив. Внутри этого jag-файла у меня также есть функция javascript, и я хочу вызвать массив внутри этого javascript.

<%
var types = jsonObj.component.type;
var typeId = new Array();
var typeRole = new Array();
for(var i=0;i<jsonObj.component.type.length;i++) {
    typeId[i] =types[i].id;
    typeRole[i] =types[i].roles;
}
log.info("----------"+typeId[0]+ typeRole[0]);
%>

в том же файле,

<script type="text/javascript">
function generateResponse() {

}
</script>

Я хочу прочитать массив typeid внутри функции generateResponse.

1 ответ

Решение

Ваш первый фрагмент - это шаблон на стороне сервера, который будет выполнен до generateResponse загружается браузером пользователя. Есть несколько способов обойти это, но самым простым будет вставить тег сценария с переменной, равной вашему массиву, а затем использовать эту переменную в вашем сценарии ниже:

<%
var types = jsonObj.component.type;
var typeId = new Array();
var typeRole = new Array();
for(var i=0;i<jsonObj.component.type.length;i++) {
    typeId[i] =types[i].id;
    typeRole[i] =types[i].roles;
}
log.info("----------"+typeId[0]+ typeRole[0]);
%>

<script> var typeId = <%= typeId %>;</script>

Переменная typeId теперь должен быть доступен в вашем generateResponse функция.

Я бы также предложил преобразовать ваши данные до того, как вы включите шаблон, но это только я.

Другие вопросы по тегам