如何使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
        }
    ]
}