2013-10-25 13 views
8

Я пытаюсь написать шаблон, который отображает двойной индексированный массив. Так что я начал писать это:Многострочный небуферизованный код в шаблонах jade

- var grid = [[1, 0, 1], [0, 1, 0]]; 
each row in grid 
    each cell in row 
     if cell 
      span x 
     else 
      span o 

, но это не так, как я хочу, чтобы написать мой массив Я хочу написать это:

- var grid = [[1, 0, 1], 
       [0, 1, 0]]; 

Это не работает, потому что нефрит уже вне инлайна Javascript

- var grid = [[1, 0, 1], 
      - [0, 1, 0]]; 

Это не работает, потому что нефрит считает эти две неправильные строки вместо одной строки

Как я могу заставить его работать?

ответ

1

EDIT: Yay, это настоящие! Пойдите, чтобы проверить другой ответ о том, как это сделать.

К сожалению, в настоящее время это невозможно в Jade. TJ (сопровождающий) заявил, что он не заботится об этом, но приветствовал бы запрос функции. https://github.com/visionmedia/jade/issues/796

К счастью, вы можете объявить массив в своем JS-файле и передать его в качестве переменной в Jade.

+0

ОК. Не могли бы вы привести пример? Если я вывожу переменную в файл js, переменная будет включена в определение функции во время процесса компиляции (я думаю, что это модуль затем ...). Я использую бранч с нефритом. Как я могу напрямую включить js (или JSON-файл из нефрита)? – nerdoc

+0

@NerDoc такая штука (передача переменных в Jade) рассматривается в документах: http://jade-lang.com/reference/ – SomeKittens

+0

Aaaaah. Я, должно быть, не обратил внимания на то, что [включает] (http://jade-lang.com/reference/includes/) охватывает текст, поэтому, если я правильно понимаю, я могу использовать 'script \ n include blah.js', чтобы иметь переменные непосредственно в текущем файле, не так ли? – nerdoc

9

Обновление: Многострочные defs теперь работают для меня, используя Jade 1.11.0. Даже вложенный JSON теперь работает как шарм.

- 
    projects = [{ 
    title: "Project 1", 
    classname: "project1", 
    slides: [{ 
     title: "Slide 1" 
     img: "images/hello.png" 
    },{ 
     title: "Slide 2" 
     img: "images/world.png" 
    }] 
    }, { 
    title: "Project 2", 
    classname: "project2", 
    slides: [{ 
     title: "Slide 3" 
     img: "images/fun.png" 
    },{ 
     title: "Slide 4" 
     img: "images/things.png" 
    }] 
    }] 
+0

Кажется, что это не снова ... – yanot

Смежные вопросы