有没有可能在不重新实现视图呈现功能的情况下使用带有Backbone.Marionette扩展的Handlebars.js?似乎Marionette依赖于使用带有下划线模板引擎的Backbone.js的约定。但是我真的很喜欢handlebar的方法,所以我想问我是否可以使用带有handlebar的木偶的高级工具。
发布于 2013-04-03 03:13:40
在Marionette中使用Handlebar的一种简单方法是在每个视图中将template
定义为预编译的Handlebar模板函数。例如:
var MyView = Backbone.Marionette.ItemView.extend({
template: Handlebars.compile("Hello, {{name}}"),
model: new Backbone.Model({name: "Steve"})
});
Marionette的默认Renderer
将检测到template
属性是一个函数,并相应地调用它。
另请参阅有关此案例的官方文档:https://github.com/marionettejs/backbone.marionette/wiki/Using-handlebars-templates-with-marionette
和另一个预编译的Q/A:Using precompiled handlebars templates with Marionette
发布于 2013-07-10 14:28:19
@brettjonesdev是正确的,但我在这里发现的另一个有效的补充是:
var MyView = Backbone.Marionette.ItemView.extend({
template: Handlebars.compile($("#assign-products-main-view").html()),
model: new Backbone.Model({name: "Steve"})
});
这在搜索DOM时很有帮助。
发布于 2015-04-17 07:39:14
我们也可以在这里使用预编译的模板。
var MyView = Backbone.Marionette.ItemView.extend({
template: Handlebars.templates['filename'],
model: new Backbone.Model({name: "Steve"})
});
这样,我们就可以从Marionette中删除编译角色。
https://stackoverflow.com/questions/15703896
复制相似问题