Мне нравится простота Pug, но иногда он ведет себя хаотично, и трудно понять, в чем проблема. Я использую Node, Express и Pug (он же Jade), и мне нужно добавить свой URL (window.local.href) в строку. Я не могу получить Pug для доступа к window.local.href
Я читал о его интерполяции, искал в GitHub файлы Pug и здесь, в SO. По-прежнему не удается отобразить в атрибуте href текущий URL. Я успешно использовал переменные в нескольких шаблонах внутри проекта, иногда после нескольких проб и ошибок.
Но здесь я застрял. Попытка грубой силы выйти из этого:
script.
currentURL = window.location.href
console.log(currentURL) // Works as expected
console.log(window.location.href) // Works as expected
pre= currentURL // undefined
pre= window.location.href // error because everything is undefined
input.sample(type='button', value="alert href", onclick="alert(window.location.href)") // Works as expected
Также прошла (на всякий случай):
a(href = 'https://url-to-append-it-to.com/?status=!{window.location.href}')
a(href = 'https://url-to-append-it-to.com/?status=#{window.location.href}')
a(href = 'https://url-to-append-it-to.com/?status=${window.location.href}')
a(href = `https://url-to-append-it-to.com/?status=${currentURL}`)
a(href = `https://url-to-append-it-to.com/?status=#{window.location.href}`)
a(href = `https://url-to-append-it-to.com/?status=!{window.location.href}`)
А также (по одному):
- currentURL = window.location.href // Cannot read property 'location' of undefined
a(href=${window.location.href}) // Unexpected token
a(href=#{window.location.href}) // Unexpected character '#'
a(href=window.location.href) // Cannot read property 'location' of undefined
a(href=${currentURL}) // Unexpected token
a(href=#{currentURL}) // Unexpected character '#'
a(href=currentURL) // links to undefined
a(href=${window.location.href}) // Unexpected token
Я также безуспешно пытался прикрепить window.location.href
к чему-то вроде locals.currentURL
.
Пока я решил перейти из файла маршрутов: currentLocation: req.protocol + "://" + req.headers.host + req.url
и использовать его следующим образом:
a(href= `https://url-to-append-it-to.com/?status=${currentLocation}`)
Это прекрасно работает, но я хочу знать, чего мне не хватает при попытке запросить локальные переменные браузера у Pug.
Я предполагаю, что теги сценариев действительно работают на на стороне клиента, когда pug рендерится, но, может быть, переменные, с которыми у меня возникают проблемы, пытаются запустить в середине рендеринга? Я не знаю.