Blaze — это пакет Meteor для создания живых реактивных шаблонов.
Метод рендеринга
Этот метод используется для рендеринга шаблонов в DOM. Сначала мы создадим myNewTemplate, который будет отображаться. Мы также добавим myContainer , который будет использоваться в качестве родительского элемента, чтобы метод render знал, где визуализировать наш шаблон.
meteorApp.html
<head> <title>meteorApp</title> </head> <body> <div id = "myContainer"> </div> </body> <template name = "myNewTemplate"> <p>Text from my new template...</p> </template>
Далее мы создадим функцию рендера, которая будет принимать два аргумента. Первый — это шаблон, который будет отображаться, а второй — родительский элемент, который мы упоминали выше.
meteorApp.js
Meteor.startup(function () { if(Meteor.isClient) { var myNewTemplate = Template.myNewTemplate; var myContainer = document.getElementById('myContainer'); Blaze.render(myNewTemplate, myContainer); } });
Визуализация с данными
Если вам нужно передать некоторые данные реактивно, вы можете использовать метод renderWithData . HTML будет точно таким же, как в предыдущем примере.
meteorApp.html
<head> <title>meteorApp</title> </head> <body> <div id = "myContainer"> </div> </body> <template name = "myNewTemplate"> <p>Text from my new template...</p> </template>
Мы можем добавить наши данные в качестве второго аргумента в методе Meteor.renderWithData . Два других аргумента такие же, как в предыдущем примере. В этом примере наши данные — это функция, которая будет регистрировать некоторый текст.
meteorApp.js
Meteor.startup(function () { if(Meteor.isClient) { var myNewTemplate = Template.myNewTemplate; var myData = function() { console.log('Log from the data object...') } var myContainer = document.getElementById('myContainer'); Blaze.renderWithData(myNewTemplate, myData, myContainer); } });
Метод удаления
Мы можем добавить метод удаления .
meteorApp.html
<head> <title>meteorApp</title> </head> <body> <div id = "myContainer"> </div> </body> <template name = "myNewTemplate"> <p>Text from my new template...</p> </template>
В этом примере мы визуализируем шаблон, который будет удален через три секунды. Обратите внимание на метод Blaze.Remove, который мы используем для удаления шаблона.
meteorApp.js
Meteor.startup(function () { if(Meteor.isClient) { var myNewTemplate = Template.myNewTemplate; var myContainer = document.getElementById('myContainer'); var myRenderedTemplate = Blaze.render(myNewTemplate, myContainer); Meteor.setTimeout(function() { Blaze.remove(myRenderedTemplate); }, 3000); } });
В следующей таблице показаны другие методы, которые можно использовать.
Blaze.getData ([elementOrView])
Используется для извлечения данных из элемента рендеринга.
Blaze.toHTML (templateOrView)
Используется для рендеринга шаблонов или представлений в строку.
Blaze.toHTMLWithData (templateOrView, data)
Используется для рендеринга шаблонов или представлений в строку с дополнительными данными.
новый Blaze.View ([name], renderFunction)
Используется для создания новой реактивной части Blaze DOM.
Blaze.currentView
Используется для получения текущего представления.
Blaze.getView ([элемент])
Используется для получения текущего представления.
Blaze.With (data, contentFunc)
Используется для построения представления, которое отображает некоторый контент с контекстом.
Blaze.If (conditionFunc, contentFunc, [elseFunc])
Используется для построения представления, которое отображает некоторый условный контент.
Blaze.Unless (conditionFunc, contentFunc, [elseFunc])
Используется для построения представления, которое отображает некоторый условный контент (инвертированный Blaze.if ).
Blaze.Each (argFunc, contentFunc, [elseFunc])
Используется для создания представления, которое отображает contentFunct для каждого элемента.
новый Blaze.Template ([viewName], renderFunction)
Используется для создания нового представления Blaze с именем и содержанием.
Blaze.isTemplate (значение)
Используется для возврата true, если значение является шаблоном объекта.