v3.rc5 js-data-http rc.2
我的API使用嵌套资源进行响应,例如/user
使用嵌套配置文件进行响应。
“profile”和“user”是两个具有相应关系的映射器
"user":
{
"id": 1,
"name": "Peter",
"profile": {
"id": 5
"dob": "today"
}
}
“profile”不会添加到缓存中。我可以调用user.profile,但store.cachedFind('profile', 5)
返回undefined。
手动调用
store.addToCache('profile', user.profile)
不会抛出任何错误,但也不会将其添加到缓存中。
我做错了什么?请帮忙。感谢。
答案 0 :(得分: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));