navid と subnavid の両方を持つモデルがあります。モデルを破棄しているときに、削除しようとしているモデルの subnavid と同じ navid を持つ他のモデルについて、コレクション全体をチェックインする必要があります。私を助けてください 。前もって感謝します 。ここに私のサンプルコードがあります。
モデル:
var Node = Backbone.Model.extend({ defaults: { NavId: '', SubNavId: ''.ItemName:'' } }
コレクション:
var NodeCollection = Backbone.Collection.extend({ モデル:ノード }
そして、ノード用(私はtrを構築しています)とコレクション用(テーブルを構築する必要があります)の2つのビューがあります
initialize: function (options) { var self = this; self.collection = new NodeCollection({ NavigationId: options.NavigationId }); self.collection.fetch({ success: function () { /*I am getting hte proper collection from my restful api and iam able to bind it properly self.render(); } }); }, render: function () { var that = this; _.each(this.collection.models, function (item) { that.RenderEachNode(item); }, this); }, RenderEachNode: function (item) { var TempJsonNode = item.toJSON(); var self = this; var nodeView = new NodeView({ tagName: 'tr', id: 'NavId_' + TempJsonNode.NavItemId, model: item }); } });
var ItemTemplate = ""; ItemTemplate += " <td>"; ItemTemplate += " <a><%= ItemName %></a>"; ItemTemplate +=" </td>"; ItemTemplate
+=" <td>"; ItemTemplate +=" <a href='#' original-title='Delete ' class='tip_north Delete'>X</a>"; ItemTemplate +=" </td> ";
var NavigationItemView = Backbone.View.extend({
template: ItemTemplate,
render: function () {
var self = this;
var tmpl = _.template(this.template);
this.$el.html(tmpl(this.model.toJSON()));
return this;
},
events: {
"click .Delete": "DeleteBtnClick"
},
DeleteBtnClick: function () {
var self = this;
self.model.destroy({
success: function (status, data) {
var RetData = JSON.parse(data);
if (RetData.Status == 'Success') {
$(self.el).remove()
}
},
error: function () {
alert('Error In Deleting The Record');
}
});
return false;
} });
テーブルを適切に構築することはできますが、モデルを破棄している間、依存モデルを破棄する方法がわかりません.私のApiは、ネストされたjsonを取得できないように制限されています(そうであれば、バックボーン関係)。そのため、モデルの NavId を持つ他のモデルとビューを削除する方法を理解する必要があります。
私を助けてください。