是否可以将jsRender模板存储在单独的文件中?
我想将它存储在一个单独的文件中,并在我的页面中引用它.
这样的事情
<script id="templateName" type="text/x-jsrender" src="thisIsTheTemplate.js"></script>
Run Code Online (Sandbox Code Playgroud)
我会赞美任何纪念或建议.
谢谢
bal*_*dre 21
是的,你可以做到这一点(我每次都使用它).
例如,假设您将模板放在一个template
文件夹中并调用它_productDetails.tmpl.html
在您的页面中,您使用jQuery $.get()
将其拉入并加载到模板中,如:
var renderExternalTmpl = function(item) {
var file = '../templates/_' + item.name + '.tmpl.html';
$.when($.get(file))
.done(function(tmplData) {
$.templates({ tmpl: tmplData });
$(item.selector).html($.render.tmpl(item.data));
});
}
Run Code Online (Sandbox Code Playgroud)
并传递一个item
包含所有3个属性的对象,例如:
renderExternalTmpl({ name: 'productDetails', selector: '#items', data: {} })
Run Code Online (Sandbox Code Playgroud)
你可以有一个很好的实用程序类来保存所有这些:
var my = my || {};
my.utils = (function() {
var getPath = function(name) {
return '../templates/_' + name + '.tmpl.html';
},
renderExtTemplate = function(item) {
var file = getPath( item.name );
$.when($.get(file))
.done(function(tmplData) {
$.templates({ tmpl: tmplData });
$(item.selector).html($.render.tmpl(item.data));
});
};
return {
getPath: getPath,
renderExtTemplate: renderExtTemplate
};
});
Run Code Online (Sandbox Code Playgroud)
你可以轻松打电话 my.utils.renderExtTemplate(item);