2012-01-09 18 views
10

साथ नेस्टेड JSON से एक संग्रह/मॉडल का निर्माण कैसे मैं अपेक्षाकृत Backbone.jsBackbone.js

करने के लिए नए तरह के चित्र से पता चलता मैं एक JSON है हूँ! मैंने बैकबोन-रिलेशनल के संबंध में कुछ जवाब देखा, लेकिन अभी भी बिंदु नहीं मिला!

मैं इस JSON को Backbone.js संग्रह/मॉडल में कैसे परिवर्तित कर सकता हूं ??

मैं एक कोड के साथ अद्यतन करता हूं लेकिन यह अपेक्षा की तरह काम नहीं करता है! मैं एक मॉडल नहीं देख सकते हैं जब मैं कार्य करें:

मेरे संरचना है:

[0]: मॉडल

का एक संग्रह है

[clefs] + ... + [रेस्ट]: संग्रह कर रहे हैं मॉडल

(clefs) => की [0] + ... + [9]: मॉडल (शीर्षक एक स्ट्रिंग है, पथ भी)

धन्यवाद एक बहुत हैं !!

संपादित करें (10.01.12):

मेरे समाधान:

window.initModel = Backbone.Model.extend({ 
    defaults: { 
    "title": "", 
    "path": "" 
    } 
}); 
window.CustomCollection = Backbone.Collection.extend({ 
    model: initModel 
}); 
window.Init = Backbone.Model.extend({ 
    url : function(){ 
    return "/api/data.json"  
    }, 

    parse: function(response) { 

    clefs = new CustomCollection(); 
    clefs.add(response.clefs);   
    this.set({clefs: clefs}); 

    ..... 

    rests = new CustomCollection(); 
    rests.add(response.rests);   
    this.set({rests: rests}); 
} 
}); 

this मुझे भी बाहर में मदद की!

Nested Array

+0

आप रूप में अच्छी तरह नेस्ट रीढ़ मॉडल/संग्रह करने के लिए देख रहे हैं (यह नहीं है आपकी आवश्यकताओं के आधार पर 100% आवश्यक)। आप एक ही ऑब्जेक्ट के साथ, केवल एक बैकबोन मॉडल के साथ प्राप्त करने में सक्षम हो सकते हैं। –

+0

@ परेशानी बैकबोन-रिलेशनल के साथ जाने के बाद मैं आपके समाधान (ओवरसीडिंग पार्स) के साथ गया हूं। बैकबोन-रिलेशनल के साथ कुछ घटनाओं 'एड' आदि फायरिंग नहीं कर रहे थे और समस्याएं पैदा कर रहे थे। पोस्ट करने का शुक्रिया! – greenimpala

उत्तर

17

मैं काम पर हूँ, इसलिए मैं तुम्हें एक पूरी तरह से कोडित जवाब नहीं दे सकता है, लेकिन सार यह है कि आप एक नेस्टेड मॉडल पदानुक्रम को प्राप्त करने के अपने शीर्ष स्तर के मॉडल में निम्न कर सकते हैं: रीढ़ की हड्डी-संबंधपरक

var AmericasNextTopModel = Backbone.Models.extend({ 
    initialize: function(){ 

     this.set({ 
      clefs: new ClefCollection(this.get('clefs')), 
      accidentals: new AccidentalCollection(this.get('accidentals')), 
      notes: new NoteCollection(this.get('notes')), 
      rests: new RestCollection(this.get('rests')) 
     }); 
    } 
}); 

मैं का उपयोग नहीं करते तो मैं आपको लगता है कि के बारे में एक जवाब नहीं दे सकता।

क्या आप ऑनलाइन शीट संगीत दर्शक/संपादक बना रहे हैं? : डी कूल मैं इसे पूरा करने के बाद इसे देखना पसंद करूंगा।

+0

हाँ मैं करता हूं: डी !! जब मैं करूँगा मैं आपको बता दूंगा! मैं आपके उत्तर में आपके उत्तर के बारे में एक अद्यतन करता हूं! – trouble

0

reset विधि (see 'reset') आप किसी संग्रह से एक JSON सारणी पारित करने के लिए अनुमति देता है। यह एक पुट विधि के बराबर है, निर्दिष्ट संग्रह को JSON हैश के साथ बदल रहा है।

आप मौजूदा संग्रह में जोड़ने के लिए add विधि का भी उपयोग कर सकते हैं, या एक नया संग्रह बनाते समय JSON हैश को कन्स्ट्रक्टर में पास कर सकते हैं।

आप एक उचित प्रारूप में इसे पाने के लिए अपने सरणी के कुछ बुनियादी सफाई अप करना होगा, और फिर convert it to JSON

+1

हुह! मैं आपके अंक देखता हूँ! लेकिन यह वास्तव में मुझे clefs के सच्चे संग्रह का निर्माण करने में मदद नहीं करता ..., बाकी नहीं है? मुझे वास्तव में ऐसा करने की ज़रूरत है जैसे मैं इसे अस्वीकार करता हूं! अगर मैं गलत हूं तो बस मुझे सही करो! धन्यवाद! – trouble

+0

मेरा बुरा! उपरोक्त तस्वीर एक JSON है! क्षमा करें – trouble

0

मैं एक अलग डोमेन पर JSON के रूप में फ़ीड को पकड़ने के लिए PHP का उपयोग कर रहा हूं। मैं एक जे एस चर करने के लिए उन परिणामों को बचाने, और फिर मैं सिर्फ सफलता इस का उपयोग करते हुए यह मेरी रीढ़ संग्रह में पाने के लिए था ...

var feedCollection = new Backbone.Collection(); 
feedCollection.set(myFeedJSON.nestedObject.nestedArrayIWant);