2

次の名前空間スキームを使用してプロジェクトに取り組んでいます。

var abc = {};
abc.models = {};
abc.views = {};

abc.models.Collection = Backbone.Collection.extend({});

新しいコレクションを作成しようとすると、次のエラーが表示されます

var collection = new abc.models.Collection({this:"that"});
TypeError: Object #<Object> has no method '_reset'

コンストラクターをabc.Collectionエラーに移動すると停止し、必要に応じてすべてが機能し始めました。

誰かがこれがなぜなのか理解するのを手伝ってもらえますか?

また、これは、各ファイルが次のようにラップされているマルチファイル アプリケーションの一部であることも付け加えておきます。

(function($, abc){

//module contents here

}(jQuery, abc));
4

2 に答える 2

3

これは機能します:

var abc = {};
abc.models = {};
abc.views = {};
abc.models.Collection = Backbone.Collection.extend({});
var collection = new abc.models.Collection([], {});

一方、これは次のようにトリップしUncaught TypeError: Object #<Object> has no method '_reset'ます:

var abc = {};
abc.models = {};
abc.views = {};
abc.models.Collection = Backbone.Collection.extend({});
var collection = abc.models.Collection([], {});

違いは、でコンストラクターを呼び出すことではありませんnew

于 2013-10-21T22:45:40.653 に答える
0

新しいバックボーンコレクションの最初の引数は、モデルの配列であり、次にオプションのハッシュです。モデルの配列を渡そうとしていますか?そうでない場合は、空の配列を渡してください:[]

于 2012-08-21T14:29:34.273 に答える