0

私は最初のバックボーンプロジェクトを試していますが、これに遭遇しました:

その日のモデルとビュー(イベント、レイアウトなど)があります。MONTH をモデル化して日のコレクション (コレクションまたは何か他のもの - 不明) を含めるのが最善であり、これに加えて、モデルの月にはいくつかの追加機能 (ボタン - 次/前の月など) が必要です。

私はこのような(何か)を行うことができます:

month = Backbone.model.extend({
    model: {
        extras: button_model,
        days:   day_collection
    }
});

?

それとももっと良い方法がありますか?

ありがとう

4

1 に答える 1

1

モデルとコレクションの概念が混同されていると思います。モデルを、あなたの例では 1 日などの特異なインスタンスと考えてください。日のグループ (またはコレクション) を取得する場合は、コレクションを使用してそれらを格納します。

バックボーン モデルを次のように設定します。

DayModel = Backbone.Model.extend({
});

次に、使用するモデルを明確に指定して、Backbone コレクションを作成します。

MonthCollection = Backbone.Collection.extend({
    model: DayModel
});

次を使用して新しいDayModelを作成できます。

monday = new DayModel({ name: "Monday", dayOfMonth: 12 });

name中括弧内は、 new に与える属性ですDayModel monday

これらの属性は、次を使用して取得できます。

monday.get('dayOfMonth'); 

戻るだろう12

のインスタンスを作成できるようになりましたMonthCollection

july = new MonthCollection();

コレクション (日から月) にモデルを追加するには、次のようにします。

july.add(monday);

詳細については、この jsFiddleを参照してください。


モデルに保存されているボタンについて言及しています。私の意見では、モデルを使用してこのような要素を格納するのは最善ではありません。代わりに、バックボーン ビューを使用して、モデル データを入力し、ID またはそのような一意に識別する属性を使用してボタンを作成し、必要な月が選択されるようにします。

Backboneをより深く理解するには、 Backbone のドキュメントをお読みください。

于 2013-05-28T16:23:51.770 に答える