Использовать переменную pug в файле client js - PullRequest
1 голос
/ 13 июля 2020

Я могу получить переменную от node js до мопса, то же самое, когда я консолью внутри встроенного скрипта, я могу распечатать данные. Но как передать переменную внешнему клиенту js файл, включенный в файл мопса

Node js:

res.render(home, {
  title: "home page",
  userId: id 
})

Мопс:

body
  -var newId = userId;
script.
  var jsNewId = #{newId}
  console.log("jsNewId",jsNewId)

эта консоль .log печатает ожидаемое значение newid. Я хотел отправить то же значение в файл js, который включен в нижний колонтитул файла мопса:

script(src="js/client.js type="text/javascript)

client. js

 $(document).ready(function () {
      var jsNewId = #{newId}  //cannot use this syntax 
   })

Как получить переменную pug в клиент js файл

1 Ответ

0 голосов
/ 14 июля 2020

Чтобы использовать переменную javascript, объявленную во встроенном теге script из внешнего файла javascript, вам нужно либо сделать ее глобальной переменной (не рекомендуется) или используйте что-то вроде локальное хранилище :

В вашем файле Pug (обязательно сделайте отступ тега script внутри body)

body
  - let newId = userId
  script.
    let jsNewId = #{newId}
    localStorage.setItem('jsNewId', jsNewId)

Затем в вашем client. js file:

$(document).ready(function () {
  let jsNewId = localStorage.getItem('jsNewId')
})

Было бы хорошо включить ваш client. js файл в качестве последнего элемента в body, чтобы убедиться, что jsNewId существует в локальном хранилище прежде, чем он попытается его получить.

...