0

たとえば、次のような多くのことを行っていることに気づきました。

var Item = Backbone.Model.extend({

});

var sampleItemCode = 12345;

var item = new Item({itemCode: sampleItemCode});

設定したい属性のデフォルトはありませんが、それを独自のモデルにしたいと考えています。そのような空の Backbone.Model を持つのは奇妙に見えるので、それを初期化する良い方法があるかどうか疑問に思っていますか?

4

1 に答える 1

1

このようにしたほうがいいです。

var Item = Backbone.Model.extend({    
    defaults: {itemCode: -1}
});

itemCode は、アイテムの明確な必要性です。だからデフォルトにします。したがって、モデル内にいくつかの関数を記述するItemと、常に itemCode があり、それに対してチェックできます。また、コレクションのためにサーバーからデータをフェッチするときに、その項目に itemCode がない場合、または Item を初期化するときに itemCode の設定に失敗した場合は、常にデフォルトになります。

たとえば、コレクションに新しいアイテムを追加する場合。このようにできます。

collection.push(new Item({name: "Item 56", price: 1500}));

ここでは毎回 itemCode: -1 を渡す必要はありません。これはデフォルトになり、保存時にサーバーで itemCode を確認し、-1 の場合、新しいアイテムの追加と見なすことができます。

しかし、あなたがしたようにそれを持っていることは何も悪いことではありません. アプリを拡張するときに、そのモデルに関数を追加することは間違いありません。

于 2013-10-07T16:14:03.490 に答える