Marionette.TemplateCache
The TemplateCache предоставляет кэш для извлечения шаблонов из блоков скриптов в вашем HTML. Это повышает скорость последующих вызовов для получения шаблона.
Индекс документации
Основные примеры использования
Чтобы использовать TemplateCache, вызовите метод get для TemplateCache напрямую. Внутри будут созданы и сохранены экземпляры класса TemplateCache, но вам не нужно создавать их вручную. get вернёт скомпилированную функцию шаблона.
var Mn = require('backbone.marionette');
var template = Mn.TemplateCache.get("#my-template", {option: 'value'});
// use the template
template({param1:'value1', paramN:'valueN'});
Вызов получения одного и того же шаблона несколько раз будет извлекать шаблон из кэша в последующих вызовах.
Очистить все шаблоны из кэша
Вы можете очистить один или несколько, или все элементы из кэша, используя метод clear. Очистка шаблона из кэша заставит его перезагрузиться из DOM (через функцию loadTemplate, которую можно переопределить, см. ниже) в следующий раз, когда он будет извлечён.
Если вы не укажете никаких параметров, все элементы будут очищены из кэша:
var Mn = require('backbone.marionette');
Mn.TemplateCache.get("#my-template");
Mn.TemplateCache.get("#this-template");
Mn.TemplateCache.get("#that-template");
// clear all templates from the cache
Mn.TemplateCache.clear()
Очистить определенные шаблоны из кэша
Чтобы очистить только определенные шаблоны из кэша, укажите селектор jQuery, который был передан в get при вызове clear.
var Mn = require('backbone.marionette');
// Pre-load our cache
Mn.TemplateCache.get("#my-template");
Mn.TemplateCache.get("#this-template");
Mn.TemplateCache.get("#that-template");
// clear 2 of 3 templates from the cache
Mn.TemplateCache.clear("#my-template", "#this-template")
Настройка доступа к шаблонам
Если вы хотите использовать альтернативный движок шаблонов, но при этом использовать возможности кэширования шаблонов, или хотите настроить способ хранения и извлечения шаблонов, вам нужно настроить TemplateCache object. По умолчанию TemplateCache извлекает шаблоны из DOM на основе атрибута id содержащего элемента и компилирует HTML в этом элементе с помощью функции underscore.js template.
Переопределить извлечение шаблона
По умолчанию извлечение шаблона выбирает содержимое шаблона из DOM с помощью jQuery. Если вы хотите изменить способ работы, вы можете переопределить метод loadTemplate в объекте TemplateCache.
var Mn = require('backbone.marionette');
var myTemplateFunc = function(selector) {
// custom template logic
};
Mn.TemplateCache.prototype.loadTemplate = function(templateId, options){
// load your template here, returning the data needed for the compileTemplate
// function. For example, you have a function that creates templates based on the
// value of templateId
var myTemplate = myTemplateFunc(templateId);
// send the template back
return myTemplate;
};
Переопределить компиляцию шаблона
По умолчанию компиляция шаблона передает результаты из loadTemplate в функцию compileTemplate, которая возвращает скомпилированную функцию шаблона underscore.js. При переопределении compileTemplate помните, что она должна возвращать функцию, которая принимает объект параметров и значений и возвращает отформатированную строку HTML.
var Handlebars = require('handlebars');
var Mn = require('backbone.marionette');
Mn.TemplateCache.prototype.compileTemplate = function(rawTemplate, options) {
// use Handlebars.js to compile the template
return Handlebars.compile(rawTemplate);
};
© 2017 Muted Solutions, LLC
Licensed under the MIT License.
https://marionettejs.com/docs/v3.5.1/marionette.templatecache.html