2011-11-04 12 views
31

मैं backbone.js (उम्मीद) समस्या आईडी के लिए प्रणाली का उपयोग करें 'आईडी' में विभिन्न वस्तुओं में से कोई भी है उपयोग करने के लिए पुरानी ऐप्स पोर्टिंग कर रहा हूँ के लिए एक अलग क्षेत्र नाम का उपयोग । चारों ओर पढ़ना, बैकबोन शुरू करने के दौरान मैं नीचे दिए गए समाधान के साथ आया हूं। मॉडल।बैकबोन - प्रत्येक वस्तु अलग है - आईडी

initialize: function(){ 
    this.idAttribute = 'user_ID'; 
    this.set({'id':this.get('user_ID')}); 
} 

मुझे चिंता है कि जैसे ही मैं रीढ़ की हड्डी के साथ विकसित करता हूं, यह दृष्टिकोण मुझे काटने वाला है। क्या किसी के पास इसका कोई अनुभव है। किसी भी पॉइंटर्स की बहुत सराहना की।

संपादित करें: मैंने मॉडल पर isNew() को अभी बुलाया है और यह सच है, भले ही आईडी अब 1 पर सेट हो। //////////////////// ///////////////////////

निम्न का उपयोग करके इसे हल करना प्रतीत होता है।

User = Backbone.Model.extend({ 
idAttribute : 'user_ID' 

})

उत्तर

50

आप idAttribute उपयोग करते हैं, रीढ़ की हड्डी मूल रूप से user_ID संपत्ति के साथ सिंक में id संपत्ति रहता है। धन्यवाद - जब आप इस की सराहना करते हैं अपने वर्ग को परिभाषित

var UserModel = Backbone.Model.extend({ 
    idAttribute: 'user_ID', 
    initialize: function() { 
     //do stuff 
    } 
}); 

var me = new UserModel({user_ID: 1234, name: 'Tim'}); 
console.log(me.id); //1234 
console.log(me.get('user_ID')); //1234 
console.log(me.isNew()); //false 

var me2 = new UserModel({name: 'newUser'}); 
console.log(me2.isNew()); //true 

गुड लक

+0

जिस तरह से यह सामान्य रूप से प्रयोग किया जाता है है। – Chin

+2

जब मैंने खुद से सवाल पूछा तो बस इस पर ठोकर खाई अगर बैकबोन प्रोजेक्ट के लिए मेरे रिलेशनल डेटाबेस स्कीमा में "id" के बजाय "id_user" जैसे id-suffixes का उपयोग करना चाहिए। मुझे आश्वस्त हो गया कि [इन] (http://stackoverflow.com/a/1369773/2236166) के अनुसार उनका उपयोग करना बेहतर है, फिर मैंने सोचा "दोह, लेकिन रीढ़ की हड्डी के मॉडल के लिए आईडी फ़ील्ड ...", जब तक मैं इस क्यू एंड ए को पढ़ें। धन्यवाद! –

+1

थोड़ा स्पष्ट है लेकिन जब तक आप मूल आईडी मान नहीं चाहते हैं (अगर आपके पास कोई है) .get ('id') का उपयोग न करें। हमेशा 'model.id' का प्रयोग करें। – backdesk

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