骨干模型结构

时间:2012-04-24 01:37:40

标签: backbone.js

我正在创建一个Grocery列表应用程序,这与todo列表非常相似。我有几年的Rails开发经验,但我很难从所有的例子中找出要放入集合的内容,以及制作模型的内容。

我用Sinatra和Redis作为后端嘲笑了应用程序。我的目标是让Sinatra成为简单的API并让骨干管理所有视图。

现在,Grocery列表只是一个复杂的ID,它有一组字符串项。如下所示:

/lists/asdfasdf34asdf => ["eggs", "bacon", "milk"]

转移到骨干网,我会将模型设为“项目”,然后集合将是“列表”,还是其他东西?

我想我的路线不是经典的休息,所以也许这就是为什么我无法整理出去做什么。

1 个答案:

答案 0 :(得分:2)

如果只有一个购物清单,CollectionModel可能是合适的。 Backbone对于事物的组织方式并不过于规范,但您肯定希望以逻辑方式设置每个模型/集合的url属性。你可能会这样做:

var app = {
  item: Backbone.Model.extend({
    // define an item model to go in the itemCollection
  }),
  itemCollection: Backbone.Collection.extend({
    initialize: function (key) {
      this.key = key;
    },
    model: app.item,
    url: function () {
      return 'lists/' + this.key + '/items/'
    }
  })
}

然后沿着这些行实例化应用程序的每个版本:

var userListKey = 'foobar',
    userCollection = new app.itemCollection(foobar);

// proceed with app. Requests for userCollection will now be
// directed to /lists/foobar/items

还有很多其他方法可以做到这一点,但希望这是一个开始。