Использование клиентских шаблонов в Sails.JS
Я новичок в Sails.js
Я пытаюсь использовать функцию assets/templates в sails для визуализации данных на стороне клиента, но не могу найти ни одного рабочего примера.
.JST из assets/templates и заполните их с помощью jQuery
Может ли кто-нибудь сослаться на рабочий пример использования клиентских шаблонов в
sails.js?
2 ответа:
Документация действительно отсутствует с этим. Тем не менее, мне удалось получить шаблоны на стороне клиента, работающие в Sails 0.12.4 со следующими шагами:
1. Предпосылки
При установке по умолчанию у вас уже должен быть файл
views/homepage.ejsс разделом для шаблонов:... <!--TEMPLATES--> <!--TEMPLATES END--> ...Теперь, запустив
$ sails lift, шаблоны подassets/templates/компилируются в файл javascriptjst.js, который затем автоматически вставляется вviews/homepage.ejsмежду тегами комментариев раздела шаблона. Однако сначала нам нужен шаблон!2. Шаблон EJS
Напишите файл шаблона, скажем
assets/templates/example.ejs:<h1><%= message %></h1>Есть одна проблема. По умолчанию Sails компилирует только шаблоны, заканчивающиеся на
*.html. Это не имеет смысла, потому что файл шаблона явно не HTML, а также потому, что шаблоны на стороне сервера подviews/уже имеют расширение.ejs. Чтобы изменить это, замените следующие строки вtasks/pipeline.js:var templateFilesToInject = [ 'templates/**/*.html' ];С
var templateFilesToInject = [ 'templates/**/*.ejs' ];Это позволяет нашим
example.ejsбыть скомпилированным вjst.jsкак функция javascript.3. Определить _
Это не достаточно. Скомпилированный javascript в
jst.jsзависит от подчеркивания или альтернативно Lodash. Без_в пространстве имен клиента выполнение функции шаблона вызовет ошибку.Чтобы импортировать его на стороне клиента, загрузите выбранную версию и поместите ее под
assets/js/dependencies/. Например, Лодашь сокращен ядро представляется достаточным. Во время следующегоsails lift, новый тег скрипта для файла будет автоматически вставлен вhomepage.ejs, в конечном итоге поместив_в пространство имен.4. Рендеринг шаблона
Запустите
$ sails liftи перейдите на главную страницу по адресуlocalhost:1337 по умолчанию.jst.jsсоздал функцию шаблона вwindow.JST['assets/templates/example.ejs'].Чтобы проверить его в действии, откройте консоль разработчика и введите:
> window.JST['assets/templates/example.ejs']({message: 'Hello'})Это должно вернуть вам строку
<h1>Hello</h1>. Эта строка, которую вы теперь хотите вставить куда-то в документ. Допустим, вы храните его в переменнойpiece. Вы можете использовать jQuery$('#target').html(piece)или good olddocument.getElementById('target').innerHTML = piece. В любом случае, в результате, отрисованная строка теперь вставляется на страницу под элементом # target.