Backbone.jsを学び始めていて、this boilerplateで始まり、ディスク上の静的ファイルからJSONデータをロードして、それをHTMLテーブルに表示して例を作りました。Backbone.jsモデルのdestroyメソッドが成功またはエラーイベントを発生させない
次に、コレクションから要素を削除し、次にDOMから削除する予定のボタンにイベントをバインドしようとしました。事はremove
イベントがコレクションにトリガされ、クリックがdestroy
メソッドをトリガー、正常に動作しますが、何も手掛かりを持ってdestroy
誰のsuccess
またはerror
コールバックから出てくるん?
モデル:
define([
'underscore',
'backbone'
], function(_, Backbone) {
var memberModel = Backbone.Model.extend({
url: "/members.json",
defaults: {
email: "",
firstname: "",
lastname: "",
gender: "",
language: "",
consent: false,
guid: "",
creationDate: ""
},
initialize: function(){
}
});
return memberModel;
});
ビュー:
define([
'jquery',
'underscore',
'backbone',
'mustache',
'collections/members',
'text!templates/members/page.html'
], function($, _, Backbone, Mustache, membersCollection, membersPageTemplate){
var membersPage = Backbone.View.extend({
el: '.page',
initialize: function(){
this.members = new membersCollection();
this.members.on('remove', function(){
// works fine
$('.members-body tr').first().remove();
console.log('removed from collection');
});
},
render: function() {
var that = this;
this.members.fetch({success: function(){
var wrappedMembers = {"members" : that.members.toJSON()};
that.$el.html(Mustache.render(membersPageTemplate, wrappedMembers));
$('#delete-member').click(function(){
that.members.at(0).destroy({
// prints nothing!!!
success: function(){ console.log('sucess'); },
error: function(){ console.log('error'); }
});
});
}});
}
});
return membersPage;
});
あなたのモデルやコレクションに 'url'が設定されていますか? –
はい、モデルとコレクションの両方で 'url'が設定されています – MaxiWheat