无法从Backbone集合中获取数据(逆火,firebase)

时间:2013-07-16 17:56:58

标签: javascript backbone.js firebase backfire

我最近开始使用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,相同的版本用于逆火教程) - 认为逆火和最新的骨干/下划线版本之间可能存在兼容性问题但是问题仍然存在。

我很确定这是愚蠢的事情,但它让我无法理解,因为我对后端堆栈不熟悉。

0 个答案:

没有答案