Jade templating в Метеор
В часто задаваемых частотах Meteor http://meteor.com/faq/how-do-i-package-a-new-templating-system есть некоторая информация о добавлении другой системы шаблонов (по умолчанию Handlebars). Jade - это единственный другой пример, явно вызванный в других документах.
Так кто-то уже работает над Джейдом? Если нет, для меня это возможно? Или еще слишком рано? например
API-интерфейс пакета быстро меняется и не документируется, поэтому вы не можете покажите свои собственные пакеты. Скоро.
Я пытаюсь любить Handlebars в моем текущем проекте Ember.js, но для меня нет ничего элегантного, как Jade.
Ответы
Ответ 1
Мы хотели бы видеть интеграцию Jade. Используйте packages/handlebars
в качестве шаблона.
Основная стратегия состоит в том, чтобы связать вывод механизма шаблона с Meteor.ui.render
, каким образом мы реализуем обновления в реальном времени. Пока ваш шаблон возвращает HTML, это сработает. Каждый раз, когда шаблон Jade ссылается на переменную Meteor.Collection
или переменную Session
, Meteor регистрирует эту зависимость, чтобы знать, как изменить шаблон при изменении данных.
Тем не менее, лучше использовать Meteor.ui.chunk
и Meteor.ui.listChunk
. Они будут ограничивать количество перерасчетов, которое должен выполнять Метеор, когда происходят изменения. Например, если вы просматриваете список документов с помощью {{#each}}
в Handlebars-speak, нет никаких причин для пересчета всего шаблона, когда новый документ входит в набор результатов. Мы просто делаем один кусок HTML для нового документа и вставляем его прямо в DOM. Это listChunk
в действии.
Таким образом, вы, скорее всего, обнаружите, что в инструменте просто if
/unless
и for
/each
в Jade вам предстоит пройти долгий путь.
Просто имейте в виду, что разработка пакетов не так документирована, как другие части системы. Поэтому не стесняйтесь задавать более конкретные вопросы, когда идете.
Ответ 2
метеоp >= 0.8.0
Использование mquandalle: jade пакета официально рекомендовано.
метеор <= 0,7,2
-
Если вы используете не, используя CoffeeScript, вы должны проверить jade-handlebars. На момент написания этой статьи есть проблема, когда файлы шаблонов CoffeeScript, кажется, должны быть обернуты внутри функции Meteor.startup
, которая вызвала другие проблемы для меня.
-
Если вы используете CoffeeScript, вы должны проверить мой Cakefile. Все детали описаны в описании, но короткая версия заключается в том, что она автоматически добавляет/удаляет/обновляет html файлы вместе с вашими нефритовыми файлами. В итоге я добавил *.html
в мой .gitignore
, который работает только в том случае, если вы не смешиваете html и jade в одном проекте. Это немного взломать, но пока он отлично работает для меня.
Ответ 3
Просто опубликуйте свой первый метеоритный пакет в Атмосфере!
Используйте Jade + Handlebars вместо HTML + Handlebars
https://atmosphere.meteor.com/package/jade-handlebars
Ответ 4
Просто получил нефритовый шаблон, работающий с моими метеорными проектами! И это настоящий нефрит, а не нефритовый руль или какая-то половина формы нефрита. Это здорово, но для этого требуется интерфейс Meteor UI, который в настоящее время находится в выпуске разработки под названием blaze-rc1. Таким образом, он не работает с Meteor 0.7 на данный момент.
do 'mrt add jade'
&
Запустите проект метеор, используя 'mrt --release blaze-rc1'
https://github.com/mquandalle/meteor-jade/
Если у вас есть файлы coffeescript и jade в одной папке, добавьте _ в начало имени файла, чтобы он загружал нефритовые файлы перед файлом coffeescript, иначе он не будет работать правильно.
Ответ 5
mrt add jade
в client/views/templates/hello.jade
вы можете сделать что-то вроде этого:
template(name="hello")
h1 hello world!
{{greeting}}
input(type="button" value="click")
запустите приложение с помощью mrt