2012-01-09 14 views
10

ile iç içe JSON'dan bir Toplama/Model inşa etmek nasıl resim gösterir gibi bir JSON var backbone.jsbackbone.js

için relativly yeniyim! Omurgaya ilişkisel ile ilgili bazı Cevaplar gördüm, ama yine de anlamıyorum!

Bu JSON'u Backbone.js Koleksiyonlar/Modelleri'ne nasıl dönüştürebilirim?

Bir kod ile güncellerim ama beklendiği gibi çalışmıyorlar!

Benim Yapısı geçerli::

[0]: modellerinin

topluluğudur

[clefs] + ... + [istirahat]: koleksiyonudur i halde bir modeli göremiyorum modelleri

(clefs) => ait [0] + ... + [9]: modeller (başlık bir dize içeren, yol çok)

çok teşekkürler vardır !!

DÜZENLEME (10.01.12):

Benim Çözüm:

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 de bana yardım etti!

Nested Array

+0

Yuva modelleri/koleksiyonları da iç içe geçmiş mi arıyorsunuz? Gereksinimlerinize bağlı olarak% 100 gereklidir. Tek bir nesne ile sadece tek bir Backbone modeli ile elde edebilirsiniz. –

+0

@trouble Backbone-Relational ile devam ettikten sonra çözümünüzle gittim (ayrıştırmayı geçersiz kılar). Backbone-Relational ile 'add' gibi bazı olaylar ateş etmiyordu ve sorunlara neden oluyordu. Gönderdiğiniz için teşekkürler! – greenimpala

cevap

17

işteyim, bu yüzden size tam kodlu cevap veremem ama omurga-ilişkisel

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')) 
     }); 
    } 
}); 

ben kullanmıyorum o yüzden sana bu ilgili bir cevap veremez: özü bir iç içe modeli hiyerarşisini elde etmek için üst düzey modellerinde aşağıdakileri yapabilirsiniz vardır.

Çevrimiçi nota görüntüleyici/editörleri mi yapıyorsunuz? : D Cool İşiniz bittiğinde onu görmek isterim.

+0

Evet yaparım: D !! Yaptığım zaman sana söylerim! yazımımda ur cevabı ile ilgili bir Güncelleme yapıyorum! – trouble

0

reset yöntemi (see 'reset') bir toplama JSON dizi geçmesine izin verir. Bu, belirtilen koleksiyonu JSON hash ile değiştirerek bir PUT yönteminin eşdeğeridir.

Varolan bir koleksiyona eklemek için add yöntemini kullanabilir veya yeni bir koleksiyon oluştururken JSON karma kodunu yapıcıya iletebilirsiniz.

Uygun bir biçimde onu almak için dizinin bazı temel temizlik up yapmak zorunda ve olacak sonra convert it to JSON

+1

huh! Puanlarını görüyorum! ama bu gerçekten clefs koleksiyonunu oluşturmama yardım etmiyor, ... değil mi? Bunu gerçekten tanımlamak zorundayım. Sadece yanlış olursam beni düzelt! Teşekkür ederim! – trouble

+0

My Bad! Yukarıdaki resim bir JSON! pardon – trouble

0

Farklı bir etki alanında olduğundan, bir beslemeyi JSON olarak almak için PHP kullanıyorum. Bu sonuçları bir JS değişkenine kaydediyorum ve daha sonra bunu benim Omurgamın koleksiyonuna sokmak için bunu kullanmakta başarılı oldum ...

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