モデル内のメソッドを使用してコレクション内にコレクションを追加する必要があるバックボーン アプリがあります。コレクションにメソッドを挿入しようとしましたが、要素を追加できません。コレクション内の他のアプリ内に追加したいアプリ外の要素をクリックすると、アプリのコレクションを作成したいと思います。
これは私のアプリです: モデル:
define(['backbone', 'collections/element'],function(Backbone, ElementCollection){
var DesignModel = Backbone.Model.extend({
initialize:function(){
console.log('Initialized Design model');
_.defaults(this, {
elements: new ElementCollection()
});
},
addElement: function(elements, options) {
return this.elements.add(elements, options);
}
});
return DesignModel;
});
コレクション:
define(['backbone', 'models/design'], function(Backbone, DesignModel){
var designCollection = Backbone.Collection.extend({
model: DesignModel,
});
return designCollection;
});
意見
define(['jquery' , 'backbone', 'models/design', 'collections/design', 'views/element'],
function($, Backbone, DesignModel, DesignCollection, ElementView){
var DesignView = Backbone.View.extend({
el:$('#page'),
initialize: function(){
console.log('initialize DesignView');
this.collection = new DesignCollection();
var here = this;
$('#insert-dynamic-element').click(function(){
var element = new ElementView();
here.collection.models.addElement(element);
});
},
render: function(){
}
})
return DesignView;
});
私はこの方法で addElement 関数を呼び出そうとしました:
here.collection.models.addElement(element);
と
here.collection.addElement(element);
しかし、オブジェクトにはメソッド addElement がないというエラーが常に発生します。これを解決するにはどうすればよいですか? ビューから addElement メソッドを呼び出して、コレクション内の別のアプリ内にアプリを追加したいと考えています。
ありがとう