如何使Falcor中的整个范围失效?
假设我有一个简单的分类和文章系统,有一个这样的路径,可以得到一个特定分类中所有文章的列表如何使Falcor中的整个范围失效?,falcor,falcor-router,Falcor,Falcor Router,假设我有一个简单的分类和文章系统,有一个这样的路径,可以得到一个特定分类中所有文章的列表 categoriesById[{integers:ids}].articles[{ranges:rows}] 现在,该路径是硬编码的,以按“最新优先”对文章进行排序,因此当我添加一篇新文章时,我需要(假设)使一个类别中的所有文章无效,因为我希望文章0成为新文章 有没有一种简单的方法可以使一个类别内的所有文章失效,或者我需要显式地使categoriesById下的每一篇文章失效,或者,有没有一种方法可以将一个
categoriesById[{integers:ids}].articles[{ranges:rows}]
现在,该路径是硬编码的,以按“最新优先”对文章进行排序,因此当我添加一篇新文章时,我需要(假设)使一个类别中的所有文章无效,因为我希望文章0
成为新文章
有没有一种简单的方法可以使一个类别内的所有文章失效,或者我需要显式地使
categoriesById
下的每一篇文章失效,或者,有没有一种方法可以将一个项目拼接到JSONGraph中的列表中 您可以将集合根目录的路径指定给invalidate
var model = new falcor.Model({
cache: {users: [{name: "Scott"}]}
})
console.log(model.getCache().users) // Object {0: Object, length: Object}
model.invalidate("users")
console.log(model.getCache().users) // undefined
您可以使用
请注意,您可能希望您的呼叫
tu返回有关新创建的文章或更新的文章数量的更多信息。在这里,它只返回一个事实,即必须从客户端缓存中删除整个项目数组。要返回更多信息,可以向返回的数组中添加路径/值对。这很有趣,但我想知道的是路由器的响应如何告诉客户端模型这样做。技术上正确,但我发现我可以忽略jsonGraph
属性,并且可以设置无效:{from:0,To:newLength}
很抱歉,仍然需要jsonGraph
。理论上,我认为您应该能够执行返回[{path:[“users”,{length:newLength}],invalidate:true}]
但是由于某种原因崩溃了。明白了:。在falcor路由器0.3中,密钥更改为无效
。我会更新答案的。
call(path, arg, refPaths, thisPaths) {
// add new article
const newLength = // get new length somehow
return [
{
path: [
"categoriesById",
path.categoryId,
"articles",
{length: newLength}
],
invalidated: true
}
]
}