2012-05-24 23 views
11

Backbone.js DELETE isteğini yanıtlamaya çalışıyorum ama konsolumda yapılan istekleri göremiyorum. Bunu koşuyorum BenceBackbone.js DELETE isteği tetiklenmiyor

var Model = Backbone.Model.extend(
{ 
    urlRoot: '/test', 
    defaults:{} 
}); 

var TableList = Backbone.Collection.extend(
{ 
    url: '/test', 
    model: Model 
}); 

:

ben toplama modeli şöyle var, çıkış kaldırma işlevi gelen görebilirsiniz

this.model.destroy(); 

Her şey iyi çalışıyor gibi görünüyor imhayı çağırıyor, o yüzden oraya vardığını biliyorum, ayrıca sahip olduğum unmansız bir yöntemi de başarıyla çalıştırıyor. Şiddet için yapılan herhangi bir istek göremiyor musunuz?

cevap

4

Sorunu sorunumda buldum, henüz bir çözüm düşünmedim. Bunun omurgalı bir hata olduğundan emin değilim, ancak ajaxSetup ve ajaxPrefilter kullanıyorum. Bunu yorumlamaya çalıştım ve işe yaradı. Bazı değerleri önceden ayarlamak için ajaxSetup yöntemine ve özellikle data parametresinin kullanımını daraltdım.

+0

Sevindiğine sevindim ... – jcreamer898

+0

Birisi yalnızca "Firefox'ta" silme isteği yok "sorunu yaşıyorsa, ancak Chrome'da değilse, bunun tam olarak sizin sorununuz olması muhtemeldir. 'AjaxSetup 'dan' data: {} 'öğesini kaldırdıktan sonra her şey yolundaydı. Teşekkürler, günümü yaptın. –

1

Başarı ve hata geri bildirimlerini kullanmayı denediniz mi? Bir DELETE isteği görmüyorsanız

this.model.destroy({ 
    success : _.bind(function(model, response) { 
        ...some code 
       }, this), 
    error : _.bind(function(model, response) { 
        ...some code 
       }, this); 
}); 

öğretici olabilirdi.

+1

Bu, benim için başarı geri bildirimini tetikler, ancak yine de sunucuya bir istekte bulunmaz. Bu çok garip, sandığın dışında çalışmanın gerekli olduğunu sanıyordum, sanki bunun için bir çeşit kanca eksik. – Rob

+0

Doğru yaptığınız gibi görünüyor. Sayfanızı yeniliyorsanız değişiklikler yapılıyor mu? Ayrıca, kodun aslında jquery ajax çağrısına ulaştığından emin olmak için adım attınız mı? Bu biraz garip çünkü bu davranışı hiç görmedim. –

+0

Bazı geri arama ile çaldıktan sonra, hata geri bildirimi response.statusText bir şey görüyorum - "[İstisna ..." Bileşen hata kodu döndürdü: 0x80460001 (NS_ERROR_CANNOT_CONVERT_DATA) "nsresult:" 0x80460001 (NS_ERROR_CANNOT_CONVERT_DATA) "konum:" JS frame :: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js :: :: line 4 "data: no]" - görünüşe göre url oluşmuyor Düzgün, kullanmaya çalıştığı url görüntülemek için var mı? – Rob

12

Yanılmıyorsam, doğru URL'ye ulaştığından emin olmak için modelinizde bir kimlik özelliği olmalıdır. modeliniz olsaydı ... doğru url inşa etmek bilmeyen bir kimlik olmadan

var Model = Backbone.Model.extend({ 
    url: '/some/url' 
}); 

var model = new Model({ 
    id: 1 
}); 
model.destroy(); // I THINK it will now try and DELETE to /some/url/1 

IE, genellikle 'sen, sonra bunu modelini getirme veya yeni bir tane oluşturun ve kaydedin ediyorum d Url ...

Bu yardımcı olur mu bakın!

+0

Evet, kimlik ayarlandı, ben this.model çıktığında görebiliyorum. – Rob

+0

Modelinizde 'urlRoot: '/ some/url' kullanmayı deneyin. – jcreamer898

+0

Hem url hem de urlRoot kümem var, ancak hala hiçbir şey yok. Firebug'da yapılan bir talebi görmem gerekiyor mu yoksa tamamen bir şey mi eksik? – Rob