2011-09-28 10 views
5

सेट नहीं करता है मुझे बैकबोन जेएस आधारित ऐप मिला है। मुझे वास्तव में रीढ़ की हड्डी पसंद है और मैं बस इसके चारों ओर अपना सिर लेना शुरू कर रहा हूं। मेरी समझ से जब मॉडल.save को एक नई इकाई पर बुलाया जाता है तो उसे सर्वर पर पोस्ट करना चाहिए, सर्वर को एक ही जेसन वापस करना चाहिए, लेकिन एक आईडी आवंटित और रीढ़ की हड्डी के साथ मॉडल को उस आईडी को जारी रखना चाहिए ताकि आगे एक पुट में परिणाम बचा सके अद्यतन के लिए आईडी के साथ।backbone.js model.save आईडी

हालांकि, जब मैं model.save() पर कॉल करता हूं और फिर मॉडल.आईडी संपत्ति प्राप्त करने का प्रयास करता हूं, तो यह शून्य है।

ऐसा इसलिए है क्योंकि मैं इसे कॉल के साथ नहीं कर रहा हूं? तो संपत्ति अभी तक सेट नहीं किया गया है?

मैं सफलता कॉलबैक कैसे सेट करूं? कॉलिंग model.save({success: function(){...}}) काम नहीं करता है?

model.save(null, { 
    success: function() { 
     alert('success'); 
    }, 
    error: function() { 
     alert('error'); 
    } 
}); 
+0

आप त्रुटि कॉलबैक भी स्थापित करने के लिए कोशिश की है? – mamoo

+0

हाँ - न तो – iwayneo

+0

कहा जाता है क्या आपने सत्यापित किया है कि सर्वर वास्तव में कॉल किया जाता है? – timDunham

उत्तर

4

कुछ इस बारे में अजीब लगता है

यहाँ वास्तविक कॉल है। silent: true सेट करना केवल इसे बनाता है ताकि ईवेंट में से कोई भी निकाल दिया न जाए। बाकी सब कुछ सामान्य रूप से होना चाहिए। दूसरे शब्दों में, यह मान नहीं है कि स्थापित करने slient: true सही जवाब यहाँ है ...

मुझे लगता है कि आप वास्तव में एक अपवाद कुछ जगह और किसी भी तरह (शायद सत्यापन या ऐसा ही कुछ के साथ) फेंक रहे हैं, silent: true स्थापित करने के लिए सब कुछ खड़ी कर रहा है के माध्यम से बहने के लिए।

मैं दृढ़ता से सुझाव देता हूं कि आप इस विकल्प को हटा दें और अपने कंसोल की जांच करें या डीबगर के साथ चलाएं ... मुझे संदेह है कि आपके पास कुछ जगह के आसपास छिपकर एक बग है।

कुछ सुझाव: model.set फ़ंक्शन के लिए annotated source पर एक नज़र डालें। इसे आपके success कॉलबैक के नाम से पहले बुलाया जाता है। उस समारोह के अंदर, silent गलत होने पर कई चीजें होती हैं। इनमें validation, व्यक्तिगत property change ट्रिगर्स, और global change ट्रिगर शामिल हैं। मैं पैसे शर्त लगाता हूं कि या तो सत्यापन विफल हो रहा है या कुछ जो बदलावों को सुन रहा है वह अपवाद फेंक रहा है।

+0

ठीक है, मैं सुबह में एक नज़र रखूंगा और वापस रिपोर्ट करूंगा :) – iwayneo

+0

तो, समस्या का अंत क्या हुआ? –

0

मैं चुप सेट करने के लिए की जरूरत:: बचाने पर सच:

model.save(null, { 
     silent: true, 
     success: function() { 
      alert('success'); 
     }, 
     error: function() { 
      alert('error'); 
     } 
    }); 
+1

हम्मम्म ... मुझे संदेह है कि यह एक यादृच्छिक फिक्स नहीं है, लेकिन आप इसे करके अपने कोड में एक बग को कवर कर रहे हैं। मेरी प्रतिक्रिया पर एक नज़र डालें। –

0

मैं एक ही मुद्दा था, पता चला हो सकता है क्योंकि अपने कस्टम parse असफल रहा था