Объединение строки + в файл Jade
Я передаю переменную сеанса из моего хранилища сеансов mongodb в веб-приложении Express для Node.js, например:
exports.dashboard = function(req, res){
res.render('dashboard', {pref: req.session.layoutpref});
}
Затем в моем файле Jade я пытаюсь присвоить значение pref
ссылке css, как это, но я получаю синтаксическую ошибку:
head
title #{title}
link(rel='stylesheet', href='/stylesheets/' + #{pref} + '.css')
Я почти уверен, что проблема заключается в моем конкатенации pref
в расположение используемого файла css. Любые идеи, как это исправить?
Ответы
Ответ 1
используйте обозначение #{}
, если вы хотите интерполировать переменную в содержимом элемента. вы можете просто использовать имена переменных прямо, если вы хотите использовать их в атрибутах.
link(rel='stylesheet', href='/stylesheets/' + pref + '.css')
эквивалентны:
link(rel='stylesheet', href='/stylesheets/' + locals.pref + '.css')
когда использовать #{}
:
a(href='/stylesheets/' + locals.pref + '.css') View the stylesheet at #{pref}
Ответ 2
Jade файлы скомпилированы в Node.js env.
Node.js(из версии 4.0) поддерживает литералы шаблона, поэтому
link(rel='stylesheet', href=`/stylesheets/${pref}.css`)
эквивалентны:
link(rel='stylesheet', href='/stylesheets/' + pref + '.css')