Store не кэширует вложенные объекты
v3.rc5 js-data-http rc.2
мой API отвечает вложенным ресурсом, например
/user
отвечает вложенным профилем."профиль" и "пользователь" - два сопоставителя с соответствующими отношениями
"user":
{
"id": 1,
"name": "Peter",
"profile": {
"id": 5
"dob": "today"
}
}
"Профиль" не добавляется в кеш. Я могу позвонить user.profile, но store.cachedFind('profile', 5)
возвращает неопределенное.
звонить вручную store.addToCache('profile', user.profile)
не выдает никаких ошибок, но и не добавляет их в кеш.
Что я делаю неправильно? Пожалуйста помоги. Благодарю.
1 ответ
Вот рабочий пример (ключ определяет отношения между user
а также profile
):
import { DataStore } from 'js-data';
const store = new DataStore();
store.defineMapper('user', {
relations: {
hasOne: {
profile: {
foreignKey: 'userId',
localField: 'profile'
}
}
}
});
store.defineMapper('profile', {
relations: {
belongsTo: {
user: {
foreignKey: 'userId',
localField: 'user'
}
}
}
});
const user = store.add('user', {
id: 123,
profile: {
id: 345,
userId: 123
}
});
console.log(store.get('user', 123));
console.log(store.get('profile', 345));
console.log(user.profile === store.get('profile', 345));