我如何为Marionette ItemView使用外部模板? 我读了很多'方法',我无法让它们工作......
JST方法......我不在轨道上,所以不能使用
Backbone.Marionette.Renderer.render = (template, data) ->
path = JST["backbone/apps/" + template]
unless path
throw "Template #{template} not found!"
path(data)
RequireJS方法......我没有使用require js
var tpl = require(inject[this.templateName]);
this.template = _.template(tpl);
我应该使用什么方法?
答案 0 :(得分:1)
我使用Handlebars作为我的模板引擎,hbs通过require.js检索预编译资源,这样我所要做的就是定义模板并将其设置为ItemView的模板;牵牛花完成其余的工作。
这是一个例子
查看 - welcome.js
define([
'app',
'jquery',
'backbone',
'marionette',
'hbs!templates/welcome'
],
function(App, $, Backbone, Marionette, template) {
return Backbone.Marionette.ItemView.extend({
template: template,
});
});
模板 - welcome.html
<div>
<h1>Hello World</h1>
</div>
如果你没有使用把手,或者不能使用hbs,那么可以使用text.js进行类似的事情 - https://github.com/requirejs/text