jsrender - 将 jsRender 模板存储在单独的 js 文件中

标签 jsrender

是否可以将 jsRender 模板存储在单独的文件中?

我想将其存储在单独的文件中,并在我的页面中引用它。

类似这样的事情

<script id="templateName" type="text/x-jsrender" src="thisIsTheTemplate.js"></script>

我会感谢任何意见或建议。

谢谢

最佳答案

是的,你可以完成这个(我每次都使用这个)。

假设您的模板位于 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));
     });    
}

并且您传递一个对象item,该对象将包含所有 3 个属性,例如:

renderExternalTmpl({ name: 'productDetails', selector: '#items', data: {} })

你可以有一个很好的实用程序类来保存所有这些:

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
    };
});

您可以轻松调用my.utils.renderExtTemplate(item);

关于jsrender - 将 jsRender 模板存储在单独的 js 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413894/

相关文章:

javascript - 在 jsrender 模板中定义变量

javascript - 如何将索引与 json 对象进行数据链接?

javascript - $.link jsrender 不起作用

javascript - 通过AJAX加载jsrender模板时出错

javascript - jsrender 模板不会渲染,有什么想法吗?

jquery - jsRender:迭代数组,同时迭代数组

knockout.js - 使用 Cassette V2 编译模板 jsRender 和 KnockoutJS 模板

javascript - 如何在 jsRender 模板中迭代 JSON 数组?

javascript - jsviews 中的辅助函数