Предполагая тот же массив foo
в вашем вопросе выше, вот несколько способов сделать это.
Этот использует фильтр EJS для записи литерала массива:
<script type="text/javascript">
var foo = ['<%=: foo | join:"', '" %>'];
</script>
Этот код кодирует его как JSON, чтобы впоследствии он был проанализирован вашим клиентским JavaScript:
<script type="text/javascript">
// note the "-" instead of "=" on the opening tag; it avoids escaping HTML entities
var fooJSON = '<%-JSON.stringify(foo)%>';
</script>
IIRC, ExtJS может обрабатывать JSON напрямую как свои данные. Если нет, то вы можете сначала использовать его анализатор JSON, а затем передать его локальной переменной. Если вы не использовали ExtJS, вы можете использовать это для разбора на клиенте: https://github.com/douglascrockford/JSON-js
Если вы решите закодировать его как JSON, это также облегчит последующее переключение обратно на AJAX для получения ваших данных. В некоторых случаях это имело бы преимущество. Страница может загрузить и отобразить некоторые данные, а также значок «занят» над элементом, для которого вы загружаете данные.
Это не значит, что с включением всех данных в исходный запрос что-то не так. Просто придерживаться JSON дает вам возможность выбирать позже.