我最近开始使用Firebase,更具体地说是Backfire,它包含Backbone的Firebase绑定。我跟随Thomas Davis的骨干beginner tutorial,尝试将Backfire整合为我的后端(在他的例子中他使用了heroku)。
这个想法很简单,有一个用户列表可以添加新用户(路由:/ new)。添加用户后,您将被重定向到主路由。我面临的问题是,一旦我加载网站(家庭路线),我只能看到“新用户”按钮,现在是用户列表,所以当我试图从firebase获取数据时必须进行一些操作。 奇怪的是,如果我去添加另一个用户,当我被重定向到主路由时,我确实有所有用户的列表(所以fetch在那里工作)。
由于我对这一切都是新手,所以老实说我不知道这个案子会是什么。也许更有知识的人可以给我一些指示
这是执行提取的视图
var UserListView = Backbone.View.extend({
el: '.page',
render: function () {
var that = this;
var users = new Users();
users.fetch({
success: function (users) {
var template = _.template($('#user-list-template').html(), {users: users.models});
that.$el.html(template);
}
})
}
});
这是模板
<script type="text/template" id="user-list-template">
<a href="#/new" class="btn btn-primary">New</a>
<hr />
<table class="table striped">
<thead>
<tr>
<th>First Name</th><th>Last Name</th><th>Age</th><th></th>
</tr>
</thead>
<tbody>
<% _.each(users, function(user) { %>
<tr>
<td><%= htmlEncode(user.get('firstname')) %></td>
<td><%= htmlEncode(user.get('lastname')) %></td>
<td><%= htmlEncode(user.get('age')) %></td>
<td><a class="btn" href="#/edit/<%= user.id %>">Edit</a></td>
</tr>
<% }); %>
</tbody>
</table>
我唯一不同的是,我在我正在使用的每个集合和模型中都包含一个firebase属性,它指向我的firebase,因为它在Backfire文档中建议(Backbone.sync Override)
对于这个项目,我使用的是Backbone 1.0.0,下划线1.4.4,jQuery 2.0.3和基础。 我已经尝试过旧版本的Backbone /下划线(分别为0.9.10和1.4.3,相同的版本用于逆火教程) - 认为逆火和最新的骨干/下划线版本之间可能存在兼容性问题但是问题仍然存在。
我很确定这是愚蠢的事情,但它让我无法理解,因为我对后端堆栈不熟悉。