2013-12-16 10 views
6

मैं Backbone.jsBackbone.js संग्रह लाने() फेंकता Uncaught TypeError: अपरिभाषित

जानने के लिए यह, प्राप्त रख दिया और एक मॉडल हटाने के लिए कार्य किया था कोशिश कर रहा हूँ की संपत्ति 'idAttribute' नहीं पढ़ सकता। लेकिन, जब मैं एक संग्रह बनाने, लाने विधि इस त्रुटि देता है: कोड मैं कोशिश कर रहा हूँ है

यहाँ:

Person = Backbone.Model.extend({ 
    urlRoot: '/people' 
}); 

PersonList = Backbone.Collection.extend({ 
    model: 'Person', 
    url: '/people' 
}); 

var personList = new PersonList(); 
personList.fetch(); 
Uncaught TypeError: अनिर्धारित (683 backbone.js) की संपत्ति 'idAttribute' पढ़ा नहीं जा सकता

लाने पर, सर्वर निम्नलिखित JSON, जो मुझे लगता लौटा रहा है सही है:

[{"id":1,"name":"Matt","description":"Worker"},{"id":3,"name":"Test","description":"Test person"}] 

मैं jQuery 2.0.3 का उपयोग कर रहा है (यह भी 1.10.2 की कोशिश की), Underscore.js 1.5.2 और रीढ़ .js 1.1.0

मैं क्या गलत कर रहा हूँ?

+0

स्टार्टर्स के लिए, 'मॉडल' को एक कन्स्ट्रक्टर को स्ट्रिंग नहीं करना चाहिए। जब आप 'पर्सनलिस्ट' का विस्तार करते हैं तो 'मॉडल: व्यक्ति' आज़माएं। – fbynite

+0

@fbynite धन्यवाद। मुझे लगता है कि यह तय है। यदि आपने इसे उत्तर दिया है तो मैं इसे स्वीकार करूंगा ... – user2736142

उत्तर

10

जब आप Backbone.Collection का विस्तार करते हैं, model एक कन्स्ट्रक्टर का संदर्भ होना चाहिए, स्ट्रिंग नहीं। इसलिए आपको Person से उद्धरण हटाने की आवश्यकता है।

PersonList = Backbone.Collection.extend({ 
    model: Person, 
    url: '/people' 
}); 

यहां Collection-model के लिए प्रलेखन है।

+0

बिल्कुल सही। धन्यवाद – user2736142

+0

आपका स्वागत है, खुशी है कि मैं मदद कर सकता हूं। – fbynite

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