2015-08-04 5 views
-2

Он всегда возвращает null, когда я попытался с другим вызовом «найти», он возвращает мне обещанный массив, который бесполезен для меня. Я не могу использовать его как отношение в представлениях.Ассоциация Ember (принадлежит и hasMany) не работает

App.Truck = DS.Model.extend 
    job: DS.belongsTo('job', { async: true }) 

App.Job = DS.Model.extend 
    trucks: DS.hasMany('truck', { embedded: 'always' }) 
+0

Можете ли вы опубликовать, где/как вы пытаетесь получить записи? Вы используете 'embedded ', что подразумевает, что вы собираетесь отправлять« грузовики »в ответ на« job /: id »в вашем API, поэтому, если ваш ответ на задание не содержит записей грузовиков, он будет равен нулю , Ember не будет пытаться сделать запрос, чтобы получить их, так как он ожидает, что они будут внедрены, когда вы получите запись 'ownTo'. –

+0

Спасибо @tom, теперь у меня оба установлены как async: true грузовики: DS.hasMany ('truck', {async: true}), он показывает в Ember Inspector, что у Грузовика есть PromisedObject of Job, а Job имеет Грузовики как PromisedManyArray. Но во взглядах, когда я делаю truck.get ('job'), он не позволяет мне получить доступ к данным, в console.log он показывает данные .. – Shahroon

ответ

0

Хорошо, я думаю, что у меня это работает.

В моем понимании ассоциации/взаимоотношений с Ember Data было несколько вопросов и как эти данные Ember работают. Точка @tom поднята здесь для

embedded: 'always' 

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

async: true 

на обоих концах, грузовик и работе.

Тогда была проблема с доступом к данным, я получаю обетованную объект и что необходимо

truck.get('job').then (job) -> 
    job.get('jobName') 

Так вот как я получил то, что мне было нужно. Есть еще несколько вещей, которые нужно сделать, но я думаю, что я сделаю это сейчас.

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