【发布时间】:2018-08-28 22:20:55
【问题描述】:
修改问题以便更好地解释:
我有两个来自两个不同 HttpDataSource 的 Falcor 模型,如下所示:
第一个模型(用户模型):
const user_model = new falcor.Model(
{
source: new HttpDataSource('http://localhost:3000/api/userManagement')
});
user_model.get(['user', 'list'])
输出1:
{
"jsonGraph": {
"user": {
"list": {
"$type": "atom",
"value": {
"users": [...]
}
}
}
}
}
第二个模型(角色模型):
const role_model = new falcor.Model(
{
source: new HttpDataSource('http://localhost:3000/api/roleManagement')
});
role_model.get(['role', 'list'])
输出2:
{
"jsonGraph": {
"role": {
"list": {
"$type": "atom",
"value": {
"roles": [...]
}
}
}
}
}
有没有办法将所有这些 Falcor 模型组合成一个模型?
目的是,如果我尝试执行 user_model.get(['user', 'list']) 不止一次,它会从 Falcor-Model-Cache 获取数据(在第一次从 DB 获取之后)。
但如果我尝试执行 role_model.get(['user', 'list']),那么我必须再次访问数据库以获取数据(以便将相同的用户列表存储在 role_model 缓存中)。
所以如果有如下方法:
all_model = user_model + role_model
然后我可以做 all_model.get(['user', 'list']) (或) all_model.get(['role', 'list'])。所以基本上我在浏览器端只有一个 Falcor-Model-Cache 组合。
希望现在问题更清楚了。
【问题讨论】:
-
每个源的 graphJSON 是什么样的?您是想跨每个合并 keySet(可能更难),还是它们彼此脱节(可能更容易)?
标签: falcor