32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
/**
|
|
*
|
|
* @param usInstance Object an instance of underscore
|
|
* @param templates Object a hash containing templates as arrays of html strings
|
|
* @returns {{getTemplate: getTemplate}}
|
|
* @constructor
|
|
*/
|
|
var WpmlTemplateCompiler = function (usInstance, templates) {
|
|
var compiledTemplates = {};
|
|
|
|
return {
|
|
/**
|
|
*
|
|
* @param {string} temp
|
|
* @returns {*|false} compiled underscore template if a template for the given
|
|
* index was found, false if no such template exists
|
|
*/
|
|
getTemplate: function (temp) {
|
|
if (!templates.hasOwnProperty(temp)) {
|
|
throw 'No such template: ' + temp;
|
|
}
|
|
if (compiledTemplates[temp] === undefined) {
|
|
var template = templates[temp];
|
|
if (template instanceof Array) {
|
|
template = template.join("\n");
|
|
}
|
|
compiledTemplates[temp] = usInstance.template(template);
|
|
}
|
|
return compiledTemplates[temp];
|
|
}
|
|
};
|
|
}; |