使用Handlebars.js与Backbone.Marionette(Use Handlebars

2019-08-18 05:16发布

是否有可能使用与该Handlebars.js Backbone.Marionette扩展,而不重新实现视图渲染功能? 看来,木偶是依靠您使用Backbone.js的下划线模板引擎的惯例。 但我真的很喜欢在车把的做法,所以我问,如果我能提线木偶与车把高级工具。

Answer 1:

使用手把与木偶一个简单的方法是简单地定义template中的每个View作为预编译把手模板函数。 例如:

var MyView = Backbone.Marionette.ItemView.extend({
    template: Handlebars.compile("Hello, {{name}}"),
    model: new Backbone.Model({name: "Steve"})
});

木偶的默认Renderer将检测到的template属性是一个函数,并相应地调用它。

又见这个案子的官方文档: https://github.com/marionettejs/backbone.marionette/wiki/Using-handlebars-templates-with-marionette

并用requirejs一个其他Q / A + +木偶车把预编译: 使用与预编译木偶车把模板



Answer 2:

@brettjonesdev是正确的,但在这里,另一个另外,我发现效果很好是:

var MyView = Backbone.Marionette.ItemView.extend({
  template: Handlebars.compile($("#assign-products-main-view").html()),
  model: new Backbone.Model({name: "Steve"})
});

这有助于搜索DOM时。



Answer 3:

我们也可以利用预编译模板这里。

var MyView = Backbone.Marionette.ItemView.extend({
template: Handlebars.templates['filename'],
model: new Backbone.Model({name: "Steve"})
});

这样,我们才能把木偶编译作用。



Answer 4:

目前两个答案不利用缓存。 使用此要点来代替。



文章来源: Use Handlebars.js with Backbone.Marionette