2013-12-07 106 views
4

我有一個視圖,其中包含員工列表,最終用戶選擇員工並刪除多個員工。使用骨幹網批量刪除

列表的每一行都包含一個複選框。最終用戶選擇多個複選框並按刪除按鈕。所選記錄需要刪除。

MVC控制器負責刪除部分。刪除方法的簽名是:

DeleteEmployes(List<int> empIds). 

我該如何做到這一點?

我骨幹模型是:

var emp = Backbone.Model.extend({ 
defaults:{ 
      Id:null, 
      fname:null, 
      lname:nulll. 
} 
}); 
+0

您的後端是否支持多次刪除模型?骨幹不支持批量刪除,您可以通過一個ajax調用來實現這一點(如果您的後端支持)! –

回答

0

通過它創建一個骨幹收集和循環,摧毀每一個模型。這會將每個模型的DELETE命令發送到服務器。

var Employees = new Backbone.Collection([ 
{ name: 'Employee1' }, 
{ name: 'Employee2' }, 
{ name: 'Employee3' }, 
]); 

Employees.each(function(model){ 
    model.destroy(); 
}); 
+0

據我所知,'Backbone.Collection'沒有'destroy'方法。 – fbynite

+0

我的不好。我修正了這一點。 – dthree

1

爲了刪除所有型號以一個請求,你需要與發送一個HTTP DELETE請求到使用「DeleteEmployes(名單empIds)」功能的控制器操作的方法擴展骨幹的集合。像這樣的東西可能會訣竅。

Backbone.Collection.prototype.bulk_destroy = function() { 
    var modelId = function(model) { return model.id }; 
    var ids = this.models.map(modelId); 
    // Send ajax request (jQuery, xhr, etc) with the ids attached 
    // Empty the collection after the request 
    // You may want to include this as a success callback to the ajax request 
    this.reset(); 
};