шаблон jade для node.js - пользовательский синтаксис и замены? - PullRequest
5 голосов
/ 20 октября 2011

Я пытаюсь заставить Джейд автоматически генерировать URL для меня:

так что если у меня есть такая ссылка пользователя:

.userLink
  a(href="/#{user}") #{user}

Я хочу иметь возможность заменить его чем-то вроде (гипотетический синтаксис):

.userLink
  userLink(#{user})

В любом случае, чтобы сделать это?

Спасибо

Редактировать: ОК, я понял:

mixin userLink(user)
  a(href="/" + user)= user

mixin userLink("Bob")

Похоже, это сработает.

1 Ответ

3 голосов
/ 20 октября 2011

ОБНОВЛЕНИЕ:

Вот версия, использующая нефритовые миксины.К сожалению, я не могу найти переменную "user" в списке атрибутов в скобках тега "a".

mixin userLink(user)
  a(href="/" + user)= user

mixin userLink("Bob")
mixin userLink("Alice")
mixin userLink("Cooper")

Создает этот HTML

<a href="/undefined"></a> Bob
<a href="/undefined"></a> Alice
<a href="/undefined"></a> Cooper

Просто поместите вспомогательную функцию в ваш объект locals и вызовите ее из шаблона

locals = {userLink: function(userName) { return "<a href=....."}}

jade.render('myview', {locals: locals})

Затем в вашем нефритовом шаблоне выполните:

= userLink(user)

Возможно, вы захотите посмотреть на регистрацию функция dynamicHelper .

...