Подтвердить что ты не робот

Объединение строки + в файл 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. Любые идеи, как это исправить?

4b9b3361

Ответ 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')