2012-08-05 6 views
5

मैं Backbone.sync() को ओवरराइड नहीं करना चाहता क्योंकि मेरे कुछ मॉडल वास्तव में मानक sync() का उपयोग करेंगे।क्या मॉडल से सीधे fetch() और save() को ओवरराइड करना अच्छा अभ्यास है?

क्या मॉडल से सीधे fetch() और save() ओवरराइड करना अच्छा अभ्यास है?

+0

यदि 'Backbone.sync() 'को ओवरराइट नहीं करना चाहते हैं तो आप हमेशा' MyModel.sync()' को ओवरराइड कर सकते हैं। यदि आप 'MyModel.fetch()' और 'MyModel.save()' को ओवरराइड करने के लिए जाते हैं, तो शायद आपको 'MyModel.destroy() 'को ओवरराइड करना होगा। किसी भी तरह से मुझे लगता है कि सबकुछ मानक _sync_ विधियों का उपयोग करने के आपके कारण पर निर्भर करता है? – fguillen

+0

@fguillen मेरे कुछ मॉडल स्थानीय स्टोरेज का उपयोग करेंगे जबकि अन्य सर्वर-साइड सेविंग का उपयोग करेंगे ... –

+0

फिर मैं इसे 'MyModel.sync()' पर ओवरराइड कर दूंगा, क्या बैकबोन के लिए लोकल स्टोरेज के कार्यान्वयन हो सकते हैं। – fguillen

उत्तर

4

वैश्विक स्तर पर sync ओवरराइड करना आवश्यक नहीं है। आप प्रति मॉडल/संग्रह यानी

var MyModel = Backbone.Model.extend({ 
    sync: customSync, 
    ... 
}); 

यह वैश्विक स्तर पर Backbone.sync को ओवरराइड करने से बचाता है।

अब यदि आपको पूर्ण सिंक को लागू करने की आवश्यकता नहीं है, उदाहरण के लिए आपको केवल fetch ओवरराइड करने की आवश्यकता है, तो आप निश्चित रूप से प्रति मॉडल आधार पर भी ऐसा कर सकते हैं।

संभवतः आपने स्थानीय स्टोरेज संस्करण द्वारा बैकबोन.sync को ओवरराइड किया है। यह वास्तव में जरूरी नहीं है (मुझे लगता है कि यह बुरा अभ्यास है)। कस्टम sync फ़ंक्शन को परिभाषित करने के लिए पर्याप्त है और मॉडल/संग्रह इसका उपयोग करने दें।

संबंधित मुद्दे