2012-05-15 20 views
37

क्या Backbone मॉडल से कोई विशेषता निकालने का कोई तरीका है?Backbone.js मॉडल से एक विशेषता हटाएं

कारण किया जा रहा है मैं कुछ कार्रवाई करने के लिए बचाने के लिए पर अतिरिक्त डेटा पारित, लेकिन फिर कि डेटा स्वचालित रूप से अपने मॉडल में जोड़ दी जाती है

प्रलेखन कहते हैं सीधे model.attributes संपादित नहीं है, इसलिए केवल अन्य विधि मैं यह करने के set विधि का उपयोग करें और अशक्त करने के लिए विशेषता निर्धारित करने में किया जाएगा देखते हैं, लेकिन यह है कि आदर्श नहीं है

var myModel = new Model() 
myModel.save({name:'Holla', specialAttr:'Please Remove me'}) 
myModel.set({tempAttr:null}) 

if(myModel.attributes['specialAttr'] == null){ 
    alert("Model does not have a specialAttr") 
} 

मैं भी गुण संपत्ति से हटाने की कोशिश की है, लेकिन यह वास्तव में दूर नहीं करता यह।

उत्तर

84

क्या आप model.unset खोज रहे हैं?

आंतरिक विशेषताओं हैश से इसे हटाकर एक विशेषता निकालें। एक "परिवर्तन" घटना को तब तक चलाता है जब तक कि मौन को विकल्प के रूप में पास नहीं किया जाता है।

आप प्रलेखन here पा सकते हैं।

+5

अरे मुझे अपने आप को उचित होने के लिए एक बेवकूफ – MattoTodd

+5

जैसा लगता है, मुझे लगता है कि रीढ़ की हड्डी के दस्तावेज़ों में वर्णमाला क्रम में सूचीबद्ध विधियां होनी चाहिए – MattoTodd

+0

सबसे अच्छा होता है, github repo https: // github पर विधि आदेश का सुझाव देने के लिए स्वतंत्र महसूस करें .com/documentcloud/रीढ़ की हड्डी –

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