2011-08-28 2 views
0

Привет, я пытаюсь использовать некоторые javascript, встроенные в функции внутри jade, но я получаю сообщение об ошибке. Вот код:javascript in jade

- each post in posts 
      li(class: 'user-') #{post.created} #{post.body} #{post.title} #{post.tags} #{post._id} 
      - var tags = post.tags 
      - tags.split(' ') 
      - each tag in tags  
      li(class : 'tags') #{tags.tag} 

Я получаю ошибку: Object tag1,,,,,,,,tag2 has no method 'split'

+0

теги - это строка внутри массива, называемая сообщениями – rabidmachine9

+0

try '- console.log (typeof tags)'. что он выводит в командной строке? – Seth

ответ

1

Похоже, что вы смешивая вкладки и пробелы. Jade.js строго следует за 2-м условным соглашением, а вкладки ofetn испортили синтаксический анализатор. Удаление вкладок для меня все отлично.

- each post in posts 
    li(class: 'user-') #{post.created} #{post.body} #{post.title} #{post.tags} #{post._id} 
    - var tags = post.tags.split(' ') 
    - each tag in tags 
    li(class : 'tags') #{tags.tag} 

И Javascript для рендеринга файла .jade.

var jade = require('jade'); 

var options = { 
    locals: { 
     posts:[{ 
       created:'today', 
       tags:'1 2 3' 
      }]  
    } 
}; 

jade.renderFile(__dirname + '/each.jade', options, function(err, html){ 
    if (err) throw err; 
    console.log(html); 
}); 

Просто убедитесь, что вы передаете в tags переменной локальных переменных.