2014-11-02 4 views
1

Я пытаюсь выяснить, как получить доступ к вложенной модели в мои данные прибора. Я могу получить доступ к имени img_url и т. Д. В цикле {{each}}, но я получаю [Object, object], если я пытаюсь сделать {{address.street}}. Модель ниже:Как включить вложенную модель в Ember.js Fixtures

App.Test = DS.Model.extend({ 
    name: attr(), 
    img_url: attr(), 
    description: attr(), 
    address: { 
    street: attr(), 
    number: attr(), 
    zip_code: attr(), 
    city: attr() 
    } 
}); 
+0

Вы пытались войти в консоль этих объектов, так что вы знаете, какие свойства она содержит? –

+0

Я сделал. Это то, что я получил: «Ember Inspector ($ E): Object {id:« 3 », имя:« Test », img_url:« url », описание:« Это тест », адрес: Object} ' –

+0

Попробуйте свойство console.log, чтобы вы могли видеть, как получить доступ к дочерним свойствам. Затем, если есть больше объектов, попробуйте также зарегистрировать эти объекты. Возможно, вы найдете свойство address.street.value и т. Д. Если бы вы могли создать демо-версию здесь - http://emberjs.jsbin.com/ –

ответ

1

Вы должны создать отдельную модель типа Address и создать связь между этими двумя моделями.

App.Test = DS.Model.extend({ 
    name: attr(), 
    img_url: attr(), 
    description: attr(), 
    address: belongsTo('address', {async:true}) 
}); 

App.Address = DS.Model.extend({ 
    street: attr(), 
    number: attr(), 
    zip_code: attr(), 
    city: attr() 
}); 

Пример: http://emberjs.jsbin.com/vuhaga/2/edit

+0

Я думал об этом, но поскольку модель всегда связана, я не действительно понять, почему это должны быть две отдельные модели. В этом учебном видео Ember он также использует author.name https://www.youtube.com/watch?v=1QHrlFlaXdI - похоже, не может найти что-либо официальное в документации по этому вопросу на веб-сайте ember. –

+0

Он не использует данные Ember, Ember и Ember Data - это два разных продукта. Ember отлично работает без Ember Data. http://stackoverflow.com/questions/24408892/ember-without-ember-data/24411550#24411550. Даже с этой настройкой отношений вы все равно можете выполнить 'test.address.street' – Kingpin2k

+0

Я включил пример выше – Kingpin2k

Смежные вопросы