Я предположил, что если модель в данных ember содержит идентификатор, относящийся ко второй модели, тогда идентификатор также может быть использован для установления отношения toTrade к второй модели объект, в соответствии с выпуском, который я создал here on github. По-видимому, это не так.Как связаны отношения между связанными моделями в данных ember-данных
Кто-нибудь знает обстоятельства, которые необходимы для установления отношений между двумя объектами, которые существуют в хранилище данных ember-данных, связаны друг с другом? Нужно ли загружать связанные объекты одновременно? (или пройти по той же просьбе в случае RESTAdapter), чтобы ссылки на идентификаторы работали? В случае, если они не пройдут по одному и тому же запросу, есть ли способ установить отношения для последующих запросов без необходимости добавлять обработчики событий для запросов, которые ищут отношения и устанавливают их вручную? Вот пример вопроса я вижу:
App.ModelA = DS.Model.extend({
name: DS.attr('string'),
modelBId: DS.attr('number'),
modelB: DS.belongsTo('App.ModelB')
});
App.ModelB = DS.Model.extend({
name: DS.attr('string')
});
App.ModelB.find(2); // returns an object
modelA.get('modelBId'); // returns 2
modelA.get('modelB'); // returns null
Вещь, которую я до сих пор не понимаю, заключается в том, что API отправляет model_b_id вместе с вызовом modelA api. Тем не менее, все объекты modelB ранее были загружены с использованием вызова 'ModelB.find()', поэтому другой вызов API для получения данных modelB, связанных с modelA, не требуется, и не загружает данные (и для этих данных я не Не хотите, чтобы нагрузка на него вызывалась, вызовы ModelA.find() часто бывают в приложении, но ModelB похож на таблицу поиска с ограниченным количеством редко изменяющихся значений). Итак, данные ember-данных, не обнаруживающие связанные объекты B, данные b/c не загружаются? – Adam
Если связанный объект уже загружен, как вы сказали, модель, ember-data не запускает запрос ajax, а берет его с карты идентификации. Отвечает ли он на ваш вопрос? –
Спасибо, что присоединились ко мне на этом на Адриене, я очень ценю это. Я чувствую, что ты близок к тому, чтобы помочь мне решить мою путаницу. Что такое идентификационная карта? Googling заставляет меня думать, что это может быть то же самое, что и я, как магазин (вид в браузере памяти db). Если бы это было так, я бы подумал, что последний 'modelA.get ('modelB')' будет возвращать объект modelB, связанный с model_b_id 2. Так как это не так, возможно, идентификационная карта - это что-то еще. Как я могу сделать modelB с ID 2, который уже существует, связан с modelA с modelBId из 2 через карту идентификации? – Adam