1

Todo リストと非常によく似た食料品リスト アプリを作成しています。私は数年の Rails 開発経験がありますが、すべての例から何をコレクションに入れ、何をモデルにするかを理解するのに苦労しています。

Sinatra と Redis をバックエンドとしてアプリをモックアップしました。私の目標は、Sinatra を単純な API にして、バックボーンにすべてのビューを管理させることです。

現時点では、Grocery リストは単なる複雑な ID であり、文字列項目のセットを持っています。次のようなものです:

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

バックボーンに移ると、モデルを「アイテム」にして、コレクションを「リスト」にするか、それとも別のものにするか?

私のルートは古典的な休息ではないと思うので、どこで何をすべきかを整理するのに苦労しているのかもしれません.

4

1 に答える 1

2

買い物リストが 1 つしかない場合は、Collectionof item Models がおそらく適切です。バックボーンは、物事がどのように編成されるかについてあまり規範的ではありませんが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

これを行うには他にも多くの方法がありますが、うまくいけば、これが始まりです。

于 2012-04-24T01:53:47.617 に答える