Codepen мопс и данные из JavaScript - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь использовать Codepen для прототипирования.

Я не могу понять, как получить javascript объект в pug template.

  • Объект
const User = {
  name: 'TrasherDK',
  auth: {
    login: 'trasherdk',
    token: 'sha512'
  },
  validated: 1
}
  • Шаблон
  +nav_section_right
    if (! User.validated)
      +nav_item_glyph("#register", "user", " Sign Up")
      +nav_item_glyph("#login", "log-in", " Log in")
    else
      +nav_item_glyph("#profile", "user", "#{User.name}")

Это дает мне Cannot read property 'validated' of undefined

Затем я добавил script const User = #{User} к вершине pug template.

Это также дает мне Cannot read property 'validated' of undefined

Затем я добавил функцию к javascript

function getData() {
  return User;
}

и изменил pug template на:

script const User = #{getData()};

Что в свою очередь приводит к getData is not a function.

В этот момент у меня закончились идеи, чтобы попробовать. Google тоже не помог.

1 Ответ

1 голос
/ 20 марта 2019

Панель JavaScript в Codepen предназначена только для клиентского JavaScript. Мопс не имеет доступа к нему при компиляции. Если вы хотите использовать объект JSON в Pug on Codepen, вам нужно добавить его на панель Pug / HTML в качестве переменной, над другим кодом, который ссылается на него.

Лучший способ сделать это - добавить его как блок небуферизованного кода , где вы добавляете дефис и добавляете отступ под кодом:

-
  const User = {
    name: 'TrasherDK',
    auth: {
      login: 'trasherdk',
      token: 'sha512'
    },
    validated: 1
  }

// the rest of your pug code goes here
...