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));
Другие вопросы по тегам