Falcor-'get'不再发出引用作为叶值

时间:2019-01-08 23:30:22

标签: falcor falcor-router

我最近已从Falcor 0.x升级到1.1.0(下一步将是2.x)

根据Falcor migration documentation,在调用model.get时,引用不再作为json发出。

但是,我想知道在model.get中管理引用的最佳做法是什么。

这里是一个例子。

具有以下json图:

{
    jsonGraph: {
        comment: {
            123: {
                owner: { $type: "ref", value: ["user", "abc"] },
                message: "Foo"
            }
        },
        user: {
            abc: {
                name: "John Doe"
                initials: "JD"
            }
        }
    }
}

呼叫model.get将导致:

const json = await model.get(["comment", "123", ["owner", "message"]);

{
    owner: undefined, // 0.x was returning `["user", "abc"]`
    message: "John Doe"
}

但是有可能仅获得所有者:

const json = await model.get(["comment", "123", "owner", ["name", "initials"]);

{
    name: "John Doe",
    initials: "JD"
}

model.get中处理引用的建议是什么?

我应该手动获取所有者(如上一个示例吗?)还是应该在ownerId模型中使用owner而不是comment引用?

1 个答案:

答案 0 :(得分:0)

&A可以使用任意数量的model.getdocs)。因此,将您的第一个pathSets分成两个并作为单独的参数传递:

pathSet

应该返回

await model.get(
  ["comment", "123", "message"],
  ["comment", "123", "owner", ["name", "initials"]]
);

基本约束是,单个pathSet只能包含相同深度的多个路径。因此,不同深度的多个路径只能由多个pathSet表示。