2012-10-09 29 views
5

Departmana göre gruplanmış bazı iletişim bilgilerini (ad, e-posta, ...) görüntülemek istiyorum ancak bunu Handlebars ile gerçekleştiremiyorum.Ember.js: Ember.Map üzerinden veri nasıl görüntülenir

  • Bölüm X

    • İletişim x1 bilgileri
    • İletişim x2 bilgileri
    • ...
  • Bölümü Y

    • İletişim y1 bilgileri ben önceden kaç tane bölümler bilmiyorum

  • İletişim y2 bilgileri
  • .... Böylece, denetleyicimde, bölümlerin anahtarları olduğu ve kişilerin bilgileri içeren dizinin her bölümün değeri olduğu bir Ember.App'de bilgi yüklemeye çalıştım. "Bunu [nesne Object] geçirilen bir EmberCollectionView içeriği Ember.Array uygulamalıdır."

    map = Ember.Map.create(); 
    // Load data from server into map 
    // m = {'Department X': [{name:'x1','email':'emailx1',...},{...}], 'Department Y':[....], ...} 
    
    {{#each department in map}} 
        {{department}} 
        {{#each contact in map.keys}} 
         {{contact.name}} | {{contact.email}} 
        {{#each}} 
    {{#each}} 
    

    bir hata olduğunu söyleyerek atılır: Böyle bir şeydir. İç içe geçmiş veriler ile bir görev elde etmek mümkün mü? Herhangi bir yardım memnuniyetle karşılanacaktır. Teşekkürler.

  • cevap

    5

    Ne böyle bir Departmanı Sınıf oluşturma hakkında: böyle

    App.Department = Ember.Object.extend({ 
        name: null 
        contacts: null // will be an array of App.Contact 
    }) 
    

    ve İletişim sınıfını: Verilerinizi yüklerken

    App.Contact = Ember.Object.extend({ 
        name: null, 
        email: null, 
    }) 
    

    , sadece bölümlerin bir dizi inşa edebileceğini

    App.departments = []; 
    
    // parse the arriving json and populate the departments array 
    App.departments.pushObject(
        App.Department.create(
         {name: dptLoadedName, contacts: [App.Contact.create({...})]} 
        ) 
    ) 
    

    Şablonunuza aşağıdaki gibi bir şey yapabilirsiniz:

    {{#each department in App.departments}} 
        {{department.name}} 
        {{#each contact in department.contacts}} 
        {{contact.name}} | {{contact.email}} 
        {{#each}} 
    {{#each}} 
    
    +0

    Mükemmel! Bir cevap beklerken tam olarak bunu deniyordum ve mükemmel çalışıyor. Ember.Map'i kullanmaya çalışıyorum çünkü Java evreninden geldim ve şablonumda Harita ile böyle bir görevi başardım. Bir milyon teşekkür – erbihanka