我想要做的是配置木偶加載外部把手模板文件,而不是做<script id="templateId" type="text/template">...</script>
。木偶:加載外部把手模板文件
我偶然發現@Derick Bailey的帖子在External handlebars templates backbone marionette ......但顯然,它並不適用於我,因爲我得到了相同的「回調未定義」,正如其中一條評論所指出的那樣。順便說一句,我正在使用Marionette 2.2.0。
這是我已經拿出: -
Backbone.Marionette.Renderer.render = function (templateId, data) {
console.log("render() - " + templateId + " " + JSON.stringify(data, null, 4));
var promise = Backbone.Marionette.TemplateCache.get(templateId);
$.when(promise).done(function (template) {
console.log("render() - promise fulfilled - " + template);
return template(data);
});
};
Backbone.Marionette.TemplateCache.prototype.loadTemplate = function (templateId) {
console.log("loadTemplate() - " + templateId);
var tmpId = templateId.replace("#", ""),
url = "resources/js/templates/" + tmpId + ".html";
var renderer = $.Deferred();
$.get(url, function (templateHtml) {
console.log("loadTemplate() - URL get - " + templateHtml);
renderer.resolve(Handlebars.compile(templateHtml));
});
return renderer.promise();
};
雖然,我沒有得到任何錯誤,我也沒有看到屏幕上的任何呈現模板。在Firebug控制檯
看,我看到了下面....
如何解決呢?我花了幾個小時試圖解決這個問題,但我現在感到沮喪。
非常感謝。
這個答案重複我的答案中提到的最後一個鏈接。請刪除它。 – 2014-09-30 21:21:26
@VahanVardanyan *真實*問題是*您的*答案不包括鏈接中提到的信息。 – 2015-03-29 14:10:46