Подтвердить что ты не робот

Jade templating в Метеор

В часто задаваемых частотах Meteor http://meteor.com/faq/how-do-i-package-a-new-templating-system есть некоторая информация о добавлении другой системы шаблонов (по умолчанию Handlebars). Jade - это единственный другой пример, явно вызванный в других документах.

Так кто-то уже работает над Джейдом? Если нет, для меня это возможно? Или еще слишком рано? например

API-интерфейс пакета быстро меняется и не документируется, поэтому вы не можете покажите свои собственные пакеты. Скоро.

Я пытаюсь любить Handlebars в моем текущем проекте Ember.js, но для меня нет ничего элегантного, как Jade.

4b9b3361

Ответ 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 в одном проекте. Это немного взломать, но пока он отлично работает для меня.

Ответ 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