看起来Backbone.view,meteor和handlebars在操作DOM的一部分时具有重叠功能。我查看了ToDo应用程序,它假设使用Backbone,但实际上,它们只使用路由器。
骨干视图也处理模板......但它们听起来与流星模板有很大不同。此外,它看起来像骨干和meteor可以在模型更新时更新ui。
好吧,我输了!?谁做了什么?Backbone对流星应用程序真的有用吗?可以Backbone&把手共存? 如果可以,在Meteor上下文中,如何将Backbone视图连接到车把模板?
编辑:发现了todo-backbone的例子。它似乎证实你可以去:谢谢
答案 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以使其具有反应性。