2015-03-06 4 views
0

Я практикуюсь с данными Ember и Ember Data, но я застрял в простых отношениях 1-M, используя Ember Models. Вот jsbin: http://jsbin.com/nikenu/4/edit?html,js,outputEmber Models & Relationships

Может ли кто-нибудь сказать мне, где мои карандаши?

Я вижу, что 2 модели загружены, но коробки не загружают карандаши через определенные отношения, а также карандаш также обнаруживает свою коробку.

ответ

0

Реляционные атрибуты в ваших моделях не должны быть идентификаторами - они должны относиться к другим моделям. Таким образом, определить свои модели, как это вместо:

App.Box = DS.Model.extend({ 
    owner: DS.attr('string'), 
    crayons: DS.hasMany('crayon')    // <---- 
}); 
App.Crayon = DS.Model.extend({ 
    color: DS.attr('string'), 
    box: DS.belongsTo('box', {async: true}) // <---- 
}); 

Затем в шаблоне, вы пытаетесь ссылаться model.crayonIds, но помните, что вы уже внутри цикла, так что вы должны использовать item.crayons. Так вот так:

<ul> 
    {{#each item in model}} 
    <li>#{{item.id}} | {{item.owner}}</li> 
    {{log item.crayons.length}} 
    <h5>Crayons</h5> 
    <ul> 
     {{#each record in item.crayons}} <!-- change is here --> 
     <li>#{{record.id}} | {{record.color}}</li> 
     {{/each}} 
    </ul> 
    {{/each}} 
</ul> 
+0

Большое спасибо Джейми! Я использую построитель моделей здесь: http://andycrum.github.io/ember-data-model-maker/ Но он может быть сломан, в этом случае с адаптером ActiveRecord он пытается назвать отношения с * Идентификаторы или * Идентификатор. – Jim