2013-02-26 88 views

回答

6

致電destroy時可以通過。

this.model.destroy({ url: "your-custom-url/" });

+2

這通常會代表對MVC的嚴重違反,因爲模型應該將這些知識封裝在一個地方。這種方法會將自定義URL泄漏到視圖/控制器中。並不是說它在每個應用程序中都是絕對不好的設計,只是針對典型的設計,我會建議不要這樣做。 – 2014-04-25 20:49:11

+0

完全同意 - 重寫destroy方法絕對是最好的方式,否則它只是在Backbone中編寫jQuery spaghetti-like代碼:) – neebz 2014-04-27 11:46:15

15
var MyModel = Backbone.Model.extend({ 
    destroy: function (options) { 
     var opts = _.extend({url: '/destroy/' + this.id}, options || {}); 
     return Backbone.Model.prototype.destroy.call(this, opts); 
    } 
)}; 

所有基於AJAX的互動最終由Backbone.sync這需要一個選項來處理對象,其中可如果骨幹的默認網址方案不適合您的服務器工作中提供的URL。

+0

甚至會更好,如果你允許的選項,通過如下: '破壞:功能(選擇){返回Backbone.Model.prototype.destroy.call(這一點,_.extend( {url:'/ destroy /'+ this.id},options)); }' – Lukas 2013-02-26 20:17:21

相關問題