如何将Backbone View连接到流星车把模板?

Oli*_*alo 12 backbone.js handlebars.js meteor

看起来Backbone.view,meteor和handlebars在操作DOM的一部分时具有重叠功能.我查看了ToDo应用程序,它假设使用Backbone,但实际上,它们只使用路由器.

骨干视图也处理模板......但它们听起来与流星模板完全不同.此外,看起来骨干和流星都可以在模型更新时更新ui.

好的,我输了!?谁做了什么?

Backbone对流星应用程序真的有用吗?Backbone和Handle酒吧可以共存吗?如果可以,在Meteor上下文中,如何将Backbone视图连接到车把模板?

编辑:找到了todo-backbone示例.它似乎证实你可以去:

  • meteor + backbone +下划线模板
  • 或者......流星+把手

流星+骨干+车把似乎不是一个可行的选择......

谢谢

Aar*_*ron 13

这比使用Underscore模板更容易,也没有更多的工作.这是一个示例.html文件:

<template name="user_list">
<ul>
  {{#each users}}
  <li>{{name}}</li>
  {{/each}}
</ul>
</template>
Run Code Online (Sandbox Code Playgroud)

这是一个示例.js文件:

Users = new Meteor.collection("users");

if (Meteor.is_client) {
  Template.user_list.users = function() {
    return Users.find();
  }

  window.UserView = Backbone.View.extend({
    initialize: function() {
      _.bindAll(this, 'render');
    },
    template: function() {
      Meteor.ui.render(function() {
        return Template.user_list();
      });
    },
    render: function() {
      $(el).empty().append(this.template());
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用路由器或其他视图来管理何时显示UserView,就像在任何其他Backbone.js应用程序中一样.

关键是使用Meteor.ui.render或其他Meteor.ui方法来呈现HTML以使其具有反应性.

  • Meteor中的模型比Backbone提供的反应性和客户端的开箱即用同步功能要强得多,而Backbone的模型和集合概念主要是将调用结构化回服务器,然后提供模板化方法来构建基于事件的系统.因此,虽然你可以将Meteor系列和模型改装成Backbone,但我建议不要这样做.相反,按照它的意图使用Meteor. (9认同)