0

我需要在 Javascript 中获取车把模板。所以我在 tpl 文件夹中创建了模板文件,并在 ML 中写了这样一行:

<resource type="download" name="tpl/" location="/tpl"/>

如果我把一些图像放到这个文件夹中,我可以从 CSS 中获取它:

.css
 {
background: url(tpl/image.png);
}

如果我想从 js 中获取此图像,AJS.$("css").css("background", "url(tpl/image.png)")我会遇到错误 - 找不到文件;

图像文件例如..实际上我需要获取模板

 AJS.$.ajax({
                    url: "tpl/backlog_coll.handlebars",
                    cache: true,
                    success: function(data) {
                        source    = data;
                        template  = Handlebars.compile(source);
                        $('#backlog_coll').html(template);
                    }
                });
4

1 回答 1

0

这就是我将如何做到的

我将在一个一般可访问的 js 文件中编写一个函数(我们现在称之为 Global.js),如下所示

全球.JS

function fnGetTemplate(strName) {
if (Handlebars.templates === undefined || Handlebars.templates[strName] === undefined) {
$.ajax({
   url : "tpl" + strName + ".handlebars",
   success : function(data) {
       if (Handlebars.templates === undefined) {
           Handlebars.templates = {};
       }
       Handlebars.templates[strName] = Handlebars.compile(data);
   },
   async : false
 });
}
return Handlebars.templates[strName];
}

这是假设我有适当引用的车把 js 库(类似于车把-v1.3.0.js)。

然后在我需要显示模板的视图中,我将声明模板,如下所示

template: fnGetTemplate("backlog_coll");

在我的视图的渲染函数中,我会调用这个模板来提供所需的数据,如下所示

render: function() {
    this.$el.html(this.template(data));
}

希望这可以帮助

于 2014-06-20T15:33:34.477 回答