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

时间:2012-05-17 02:53:09

标签: backbone.js meteor handlebars.js

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

骨干视图也处理模板......但它们听起来与流星模板有很大不同。此外,它看起来像骨干和meteor可以在模型更新时更新ui。

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

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

编辑:发现了todo-backbone的例子。它似乎证实你可以去:

  • meteor + backbone +下划线模板
  • 或...... meteor + handlebars
流星+骨干+把手似乎不是一个可行的选择...

谢谢

1 个答案:

答案 0 :(得分:13)

使用Underscore模板非常容易,也没有其他工作。这是一个示例.html文件:

<template name="user_list">
<ul>
  {{#each users}}
  <li>{{name}}</li>
  {{/each}}
</ul>
</template>

这是一个例子.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());
    }
  });
}

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

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