#javascript #node.js #express #ejs
#javascript #node.js #экспресс #ejs
Вопрос:
Я использую express js и визуализирую файл с помощью
res.render('plain',{state:'admin'})
где plain.ejs — это файл ejs. Этот файл содержит main.js
<script src ="/main.js"></script>
Как я могу получить доступ к переменной состояния в main.js файл , пожалуйста , помогите!!!
Ответ №1:
Вы не можете напрямую. Но вы можете сделать что-то вроде этого :
plain.ejs
<script>
var state = {{ state }};
</script>
<script src ="/main.js"></script>
затем в main.js
console.log(state);
Комментарии:
1. Я пытался, но получаю ошибку Uncaught Синтаксическая ошибка: неожиданный токен {
2. каков ваш разделитель для ejs?
3. Понял! разделителем является <%- %>, и я использовал var state = <%- JSON.stringify(state) %> теперь я могу использовать его в main.js , Большое спасибо!
4. Привет. Я получаю ошибку присвоения свойства, ожидаемого в строке var state = {{ state }}; Пожалуйста, помогите мне
Ответ №2:
Возможно, грязное решение, но вы могли бы создать переменную состояния в глобальной области видимости и main.js сможете получить к нему доступ:
<script type='text/javascript'>
var state = '<%= state%>'
</script>
<script src ="/main.js"></script>
Если у вас есть дополнительные данные для передачи клиенту, вы можете передать их как объект:
res.render('plain',{data: {state:'admin', page_title: 'first page'}})
А затем просто вывести весь объект следующим образом:
<script type='text/javascript'>
var data = <%= JSON.stringify(data)%>
</script>
Таким образом, вы могли бы получить доступ к состоянию как by data.state
.