複数のアポイントメントモデルの問題は、オブジェクト指向の観点からクリーンであるという点です。異なるモデルを同じコレクションに配置することはできないため、実用的ではありません(コレクションは1つのモデルクラスのモデルを格納するだけです)。
異なる予定タイプの数が限られている場合は、1つの予定モデルを用意し、それがどのタイプのモデルであるかを定義するtype属性を追加することをお勧めします。次に、このメソッドを使用して、次のようなアンダースコア関数initialize
を使用してデフォルトを設定できます。_.defaults()
initialize: function(){
var defaults;
switch(this.get("type"){
case "USER":
defaults = {...};
break;
case "STAFF":
defaults = {...};
break;
case default:
defaults = {};
};
_.defaults(this.attributes, defaults); // this doesn't use the set functions and doesn't trigger any change events, neither does the default implementation in the Backbone.Model constructor
}