0

v3.rc5 js-data-http rc.2

  • 我的 API 响应嵌套资源,例如/user响应嵌套配置文件。

  • “profile”和“user”是两个具有各自关系的映射器

"user": { "id": 1, "name": "Peter", "profile": { "id": 5 "dob": "today" } }

“配置文件”不会添加到缓存中。我可以调用 user.profile,但store.cachedFind('profile', 5)返回未定义。

手动调用 store.addToCache('profile', user.profile) 不会引发任何错误,但也不会将其添加到缓存中。

我究竟做错了什么?请帮忙。谢谢。

4

1 回答 1

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));
于 2017-01-18T00:36:53.950 回答