2013-01-16 14 views
9

पर विशेषता है मुझे एक मॉडल में जेसन को पार्स करने में परेशानी हो रही है।बैकबोन जेएस पार्स जेसन एक संग्रह के मॉडल

यहाँ JSON है:

[ 
{ 
    "name": "Douglas Crockford", 
    "email": "[email protected]", 
    "_id": "50f5f5d4014e045f000002", 
    "__v": 0, 
    "items": [ 
     { 
      "cena1": "Cena1", 
      "cena2": "Cena2", 
      "cena3": Cena3, 
      "cena4": "Cena4", 
      "cena5": "Cena5", 
      "cena6": Cena6, 
      "_id": "50ee3e782a3d30fe020001" 
     } 
    ] 
} 

]

और मैं एक मॉडल की जरूरत है 'आइटम' के लिए इस तरह जिम्मेदार बताते हैं:

cena = new Model({ 
      cena1: "Cena1", 
      cena2: "Cena2", 
      ... 
}); 

मैं क्या कोशिश की है:

var cenaCollection = new Backbone.Collection.extend({ 
    model: Cenas, 
    url: '/orders', 

    parse: function (response) { 
     return this.model = response.items; 
    } 

}); 

तब मैं n संग्रह और प्राप्त करने का उदाहरण, लेकिन मुझे "प्रतिक्रिया.इटम" हमेशा "अपरिभाषित" मिलता है: |

अग्रिम धन्यवाद!

उत्तर

10

parse फ़ंक्शन को मॉडल पर सेट करने के लिए विशेषता हैश को वापस करना चाहिए (documentation here देखें)। तो आप बस की आवश्यकता होगी:

parse: function (response) { 
    return response[0].items; 
} 
+0

वास्तव में, मैंने कोशिश की है कि रूप में अच्छी तरह से, अभी भी "अनिर्धारित" मिलता है:/ – asirgado

+0

@asirgado मैं सिर्फ देखा है कि आपका JSON एक सरणी में लिपटे होने लगता है - यह सही है? यदि ऐसा है तो आपको इसके बजाय 'प्रतिक्रिया [0] .items' की आवश्यकता होगी ...? – McGarnagle

+0

ने अभी कोशिश की और यह मेरी जरूरत के अनुसार काम करता है! धन्यवाद!! अगर मुझे सरणी के अंदर और 'आइटम' मिल जाए तो यह काम करेगा? धन्यवाद! – asirgado

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