Переменная Jade в спецификациях тегов - PullRequest
1 голос
/ 01 марта 2012

У меня нефритовая страница вот так:

table
    th Site Name
    th Deadline
    th Delete Transaction

    - if (transactions != null)
        each item in transactions
            tr
                td= item.item_name
                td
                    span(id='countdown' + item.timeout + ')= item.timeout
                td
                    span(style='cursor: pointer;', onclick='deleteTransaction("=item.uniqueId")')= "X"

            button(id='confirmButton', onclick='confirm();')Confirm

Как вы можете видеть в атрибуте span, я пытаюсь поместить локальную переменную двумя различными способами, и она не работает. Что касается первого способа, я получаю ошибку token ILLEGAL, в то время как второй просто пишет в моем JavaScript что-то вроде deleteTransaction("=item.uniqueId");. Я знаю, что ответ - это что-то действительно глупое, но снова и снова Jade Doc (даже если он улучшился) мне не помогает.

Спасибо

1 Ответ

6 голосов
/ 01 марта 2012

Цитировать документы :

Предположим, у нас есть локальный пользователь { id: 12, name: 'tobi' }, и мы хотим создать тег привязки с href, указывающим на "/ user / 12", мы могли бы использовать обычную конкатенацию javascript:

a(href='/user/' + user.id)= user.name

Ergo:

span(id='countdown' + item.timeout)= item.timeout

// ...

span(style='cursor: pointer;', onclick='deleteTransaction("' + item.uniqueId + '")')= "X"

Снова процитировать:

или мы могли бы использовать интерполяцию jade, которую я добавил, потому что каждый, кто использует Ruby или CoffeeScript, кажется, считает, что это допустимый js ..:

a(href='/user/#{user.id}')= user.name

И так:

span(style='cursor: pointer;', onclick='deleteTransaction("#{item.uniqueId}")')= "X"

В качестве общего совета, который вы будете использовать каждый день своей жизни в программировании: балансируйте свои цитаты. Как и в скобках и скобках, каждая кавычка должна либо открывать новую цитату, либо закрывать уже открытую цитату (того же типа, то есть двойные кавычки закрывают двойные кавычки, одинарные кавычки закрывают одинарные кавычки). Чтобы взять ваш код:

span(id='countdown' + item.timeout + ')= item.timeout
  //                                 ^
  //                                 |
  // What's this guy doing? ---------+

Несмотря на то, что Jade является языком шаблонов и, возможно, не «реальным» языком программирования, это правило, как и в HTML (также не в языке программирования), хорошо вам подойдет.

...