如何在本地 falcor 模型数据集上实现突变响应
Posted
技术标签:
【中文标题】如何在本地 falcor 模型数据集上实现突变响应【英文标题】:how to implement mutation responses on a local falcor Model dataset 【发布时间】:2016-01-22 06:19:21 【问题描述】:鉴于我有一个示例模型:
var model = new falcor.Model(
cache:
userById:
"1":
name: "User",
email: "user@email.com"
,
users:
current: null
);
这是我用于测试目的的本地模型,我想在调用 users.login
时实现它,以便用户调用:
model.call(['users', 'login'], ['user', 'password'])
我意识到如果我这样做:
var model = new falcor.Model(
cache:
userById:
"1":
name: "User",
email: "user@email.com"
,
users:
current: null,
login: function(user, password)
console.log('this code is reached', user, password);
// what to return in order to mutate model?
,
);
当我调用它时,它会到达那里,但我不知道如何改变模型作为响应的一部分;在服务器端,我们返回带有值和无效的路径,它可以正常工作,但在这里我尝试了:
// trying returning as a jsonGraph response, don't work
login: function()
return
jsonGraph:
users:
current: $type: "ref", value: ['userById', '1']
,
paths: [['users', 'current']]
// trying returning as a path set mutation list, don't work
login: function()
return [path: ['users', 'current'], value: $type: "ref", value: ['userById', '1']]
// trying force call to set on the model, don't work
login: function()
this.set([
path: ['users', 'current'], value: $type: "ref", value: ['userById', '1']
])
// trying using ModelResponse, got an example on some external sources, don't work
login: funtion()
return new ModelResponse((observer) =>
observer.onNext(
jsonGraph:
users:
current: $type: "ref", value: ['userById', '1']
,
paths: [['users', 'current']]
);
observer.onCompleted();
);
现在我不知道还能尝试什么;我需要一种简单的方法来在调用本地模型后声明突变,如果你知道如何解决这个问题,请在这里告诉我。
谢谢。
【问题讨论】:
【参考方案1】:客户端模型缓存仅支持JSONGraph,它本质上只是带有一些约定的JSON,不支持函数。因此,当使用 falcor 模型缓存且没有数据源/中间层路由器时,无法实现调用。
这在原型设计/测试时可能有点烦人,因为路由器在概念上比简单的 JSON 缓存对象更难。我前段时间遇到了这个问题,所以我写了一个数据源模块来支持它:falcor-local-datasource。 dataSource 使用 确实 支持函数节点的图形对象进行初始化,并且与上面的示例一样,将根据函数返回的 JSONGraphEnvelope 或 PathValues 的数组来改变图形。 p>
【讨论】:
以上是关于如何在本地 falcor 模型数据集上实现突变响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在列子集上实现 PySpark StandardScaler?