【问题标题】:Falcor: How to define a function in falcor's JSON Graph?Falcor:如何在 falcor 的 JSON Graph 中定义函数?
【发布时间】:2016-07-29 16:19:00
【问题描述】:

我对这个模态层库 --- Falcor 非常感兴趣。而且我看了Falcor的官方文档,在JSON Graph section,一个The Abstract JSON Graph Operations的话题,说到call操作,我完全糊涂了。这是我根据官方示例的代码:

var jsonGraphObject = {
    todosById: {
        "44": {
            name: "get milk from corner store",
            addedAt: 29689724399,
            done: false,
            prerequisites: [{ $type: "ref", value: ["todosById", 54] }]
        },
        "54": {
            name: "withdraw money from ATM",
            addedAt: 15687384689,
            done: false,
            prerequisites: []
        }
    },
    todos: [
        { $type: "ref", value: ["todosById", 44] },
        { $type: "ref", value: ["todosById", 54] }
    ]
};
var model = new falcor.Model({
  cache: jsonGraphObject
});

然后文档向我展示了如何使用call

model.call(
    // callPath
    ["todos", "add"],
    // arguments
    ["pick up car from the shop"], 
    // refPaths
    [
        ["addedAt"]
    ],
    // thisPaths
    [
        ["length"]
    ])
    .then(console.log.bind(console))

文档只是显示结果,但我的代码不起作用,我完全不知道这个add 函数在哪里,也不知道如何在 Falcor 的 JSON Graph 中定义函数。

我用谷歌搜索了它,但没有得到我的答案。那么那里有任何示例或样板项目吗?谢谢。

【问题讨论】:

标签: falcor


【解决方案1】:

函数未缓存,因此它们不能位于传递给Model 构造函数的选项的cache 属性中。

call 会将处理委托给模型的数据源,因此后果取决于数据源的实现。如果您使用在服务器端调用RouterHttpDataSource,则该函数驻留在服务器上。

【讨论】:

    猜你喜欢
    • 2018-01-31
    • 2016-02-21
    • 2015-11-13
    • 2016-09-23
    • 2017-10-22
    • 2016-02-29
    • 2016-09-30
    • 2016-07-25
    • 2017-02-01
    相关资源
    最近更新 更多