如何在骨干网中加载预编译模板?

时间:2015-01-20 05:36:33

标签: javascript jquery backbone.js marionette backbone-views

你能否告诉我如何加载预先编译的模板。我搜索了它并找到了解决方案。现在我不知道如何使用这个功能。请告诉我如何使用这个功能? 码: http://goo.gl/ALfkzf

Backbone.Marionette.TemplateCache.prototype.loadTemplate = function (templateId, callback) {
            var tmpId = templateId.replace("#", ""),
                    url = "/app/templates/" + tmpId + ".html";

            $.get(url, function (templateHtml) {
                compiledTemplate = Handlebars.compile($(templateHtml).html())
                callback.call(this, compiledTemplate);
            });
        };

        Backbone.Marionette.Renderer.renderTemplate = function (templateId, data) {
            var renderer = $.Deferred();
            Backbone.Marionette.TemplateCache.get(templateId, function(template){
                var html = template(data);
                renderer.resolve(html);
            });
            return renderer.promise();
        };

我正在尝试加载目录中的html文件?模板/的test.html

var ToolItemView = Backbone.Marionette.ItemView.extend({

    template: 'template/test.html',



});

1 个答案:

答案 0 :(得分:0)

您尝试使用的代码替换了Marionette中的默认HTML机制。

  1. '模板/的test.html'将被翻译为" /app/templates/template/test.html.html" ;,我猜这不是你想要的(更改网址生成或模板指针)
  2. 您的Backbone代码,并未假设," test.html"预编译相反编译正在客户端发生,在GET响应之后,这是你想要的吗?
  3. 关于Backbone覆盖使用,应该在尝试渲染ToolItemView之前调用它,所以基本上你可以在ToolItemView渲染之前的任何地方调用这段代码。