2014-07-01 9 views
8

Uygulamamın arka ucunda birkaç kaynak var. Her kaynak için bir model ortaya çıkar.Yuva Kaynaklar ile Ember Verileri Nasıl Kullanılır

Diğer tüm kaynakların giriş noktaları User modelinden geçer. Demek istediğim, User verilirse BlogPost'u bulabiliriz. Bir BlogPost Verilen biz Comments vb Kor terminolojisinde

, biz söyleyebiliriz bulabilirsiniz:

GET /api/v1/users/1 
GET /api/v1/users/1/blog_posts/1 
GET /api/v1/users/1/blog_posts/1/comments/1 

Ben şekil çalışıyorum: arka uç ile

User hasMany BlogPost 
BlogPost hasMany Comment 
Comment belongsTo BlogPost 

formun REST API ortaya çıkarır Belirli bir User'a ait olan belirli bir BlogPost'a ait olan Comment'u almak için Ember Data'yı kullanma.

App.Comment = DS.Model.extend({ 
    ... 
    blogPost: DS.belongsTo('App.BlogPost') 
}); 

ve

CommentRoute I şu var: Ben Comment için tipik Kor modeli tanımlamak eğer, bkz kadarıyla

var CommentRoute = MessageRoute.extend({ 
    model: function(params) { 
     this.store.find('comment') 
    }, 

istek gönderilir:

/api/v1/comments 

Ember Da için nereden başlayacağımı bile bilmiyorum ta formun URL'ler kullanmak: sordum birkaç benzer sorular (aşağıdaki bağlantılara bakın) gördüm ama bunların hiçbirine kesin bir cevap görmedim

GET /api/v1/users/1/blog_posts/1/comments/1 

. Çoğu zaman, ember-data, belki de, böyle bir işleve sahip olmadığında (ya da bu ipliklerin bazılarında iddia edilmiştir) neredeyse bir yaşındadır.

Hatalı verilerin böyle bir işlevselliğe sahip olup olmadığını doğrulamak için tekrar soruyorum.

Benzer Sorular:

  1. Ember Data nested Models
  2. Canonical way to load nested resources
  3. Deep nested routes

cevap

1

o bağlantıları ile işlemek için en iyi yol. Bunu yapmak istemezseniz, desteklenmekten çok uzaktır ve hacklemenin zor olması (boru hattı sadece bilgiyi kolaylıkla geçemez). Şahsen bu durumda kendi adaptörünüzü yuvarlamanızı öneririm (Ember without Ember Data).

App.Foo = DS.Model.extend({ 
    name: DS.attr('string'), 
    bars : DS.hasMany('bar', {async:true}) 
}); 

App.Bar = DS.Model.extend({ 
    foo: DS.belongsTo('foo'), 
}); 

json:

{ 
    id: 1, 
    name: "bill", 
    links: { 
    bars: '/foo/1/bars' 
    } 
} 

Örnek: http://emberjs.jsbin.com/OxIDiVU/971/edit yardımcı `links` ilişkilendirir nasıl

+0

? Bu rotayı şablonda düz olarak bulabiliriz. – givanse

+0

Üzgünüm, söylediklerimi anladığımdan emin değilim.Körel terminolojiyi REST terminolojisiyle karıştırıp karıştırmadığınızdan ya da tamamen farklı bir şeyden bahsediyor olmanızdan emin değilim. Şablon modelin bitiş noktasıyla ne ilgisi var? – Kingpin2k

+0

Merhaba @ Kingpin2k Aynı problem yaşıyorum. Yuvalanmış kaynaklar için bağlantıları nasıl kullandığınıza dair bir örnek verebilir misiniz? Belgelerin bununla ilgili herhangi bir detayı yoktur. Şimdiden teşekkürler – hasib32