1

関数のコレクションを使用して backbone.collection を拡張する必要があります。

例:

var collection1 = Backbone.Collection.extend({});
var collection2 = Backbone.Collection.extend({});

次のカスタム メソッドが必要です。

console.log(collection1.method1); // function () {}
console.log(collection1.method2); // function () {}

一方で

var collection3 = Backbone.Collection.extend({});

これらのメソッドを持つべきではありません。

console.log(collection3.method1); // undefined

collection3 ではなく、collection1 と collection2 だけに Backbone.Collection を拡張するにはどうすればよいですか?

4

2 に答える 2

10

次のような意味ですか。

var CustomCollection = Backbone.Collection.extend({
    method1: function() {},
    method2: function() {}
});
var collection1 = CustomCollection.extend({});
var collection2 = CustomCollection.extend({});

var collection3 = Backbone.Collection.extend({});
于 2012-07-30T13:29:44.750 に答える
4

Marionette の例に従って、オブジェクト クラスのプロトタイプ プロパティにプロパティまたはメソッドを追加する必要があります。

とにかく、次のコードは @anto_byrma と同等です。
ただし、このアプローチの利点は、コレクション、モデル、またはビューを同じ方法で拡張できることです。

var obj = {
    method1: function() {},
    method2: function() {}
};

var collection1 = Backbone.Collection.extend({});
var collection2 = Backbone.Model.extend({});
var collection3 = Backbone.Collection.extend({});

_.extend(collection1.prototype, obj);
_.extend(collection2.prototype, obj);
于 2012-07-31T07:51:30.263 に答える