2014-04-01 9 views
7

gidon şablonda hasMany kor ilişkide ilk öğeyi görüntüler Temelde bir iplik 1 yazar daha fazlasına sahip olabilir ama özellikle sadece ilkini gösterilecek lüzum şablonBir hasMany ilişki</p> <p>ilk öğeyi göstermek gerekir

aşağıdaki json

{ 
    threads: [ 
     { 
      id: 1, 
      authors: [2,3] 
     } 
    ], 
    authors: [ 
     { 
      id: 2, 
      fullname: "foo" 
     }, 
     { 
      id: 3, 
      fullname: "bar" 
     } 
    ]   
} 

Ve aşağıdaki modellere ettik

App.Thread = DS.Model.extend({ 
    authors: DS.hasMany('author') 
}); 

App.Author = DS.Model.extend({ 
    fullname: DS.attr('string') 
}); 

Şimdi şablonumda {{thread.authors[0].fullname}} gibi bir şey yapmaya çalışıyorum ama işe yaramıyor. Ayrıca gidon sözdizimine göre thread.authors.0.fullname denedim ama hiçbir şey değişmedi. Yardımlarınız için şimdiden

Thnx

cevap

18

Kullanım Ember.Enumerable en firstObject:

{{thread.firstObject.fullName}} 

yerlerde bir sürü kullanmak yapacaksanız, en iyi bir bilgisayarlı özellik olarak tanımlamak için modeli:

:

App.Thread = DS.Model.extend({ 
    authors: DS.hasMany('author') 

    firstAuthor: Ember.computed.alias('authors.firstObject') 
}); 

ve gibi şablonlar kullanmak

+0

Mükemmel, teşekkürler! Sadece meraktan, ya ikinciye ihtiyacım olursa? Bir yolu var mı? – Fed03

+0

@ Fed03 Şablonlardan olabildiğince fazla mantığı (2. öğe, Nth öğesi, ... elde etme) en iyi şekilde tutmak. Sorunuzu cevaplamak için 2. maddeyi almak için önceden tanımlanmış bir yol yoktur. Bunu, kontrol cihazınızda hesaplanmış bir özellik olarak tanımlamanız ve orada hesaplamanız gerekecektir. –

+1

bunu yapabilirsin. ('Yazarlar'). ObjectAt (n) kontrol cihazınızda –

İlgili konular