将 falcor 用于具有瞬态数据的多参数请求

Posted

技术标签:

【中文标题】将 falcor 用于具有瞬态数据的多参数请求【英文标题】:using falcor for a multi parameter request with transient data 【发布时间】:2017-03-17 19:41:49 【问题描述】:

我无法弄清楚如何将 Falcor 用于特定用例。

基本上我需要从页面中获取一些字段并执行服务器端验证业务逻辑。页面应该只显示验证是否成功,如果不成功,原因。

从技术上讲,我可以使用 falcor get 查询,但它们似乎不适合多参数调用

我可以尝试使用 Falcor 'call',它可以让我轻松传递多个参数,但不适合返回瞬态数据。

这只是 Falcor 不应该真正用于的用例,还是我遗漏了什么?

【问题讨论】:

【参考方案1】:

Falcor 服务器返回的所有数据都是模型的一部分,无论是否是瞬态的。

get 在这里很合适,因为您想读取 数据。 call 适合对模型进行黑盒修改

gets 始终是多参数,因为您提供了数据的整个路径,可以包含您想要的任何内容。假设我们要验证一个 URL。我们可以这样做:

getValue('updateProfileForm.website["http://example.com"].valid')

这将根据 URL 返回 true 或 false。结果可以永久保存在缓存中,因为它永远不会改变(URL 要么始终有效,要么无效)。

如果验证过程需要一次知道多个字段的值,比如密码确认,你可以这样做:

getValue('updateProfileForm.password["new password"].confirm["new password"].valid')

如果验证依赖于表单外部的某些内容,例如现在是什么时间,请在路径中包含此参数以最大化缓存能力。

【讨论】:

以上是关于将 falcor 用于具有瞬态数据的多参数请求的主要内容,如果未能解决你的问题,请参考以下文章

具有来自外部 Api 的缓存数据的 Falcor 模型

使用 Falcor 发送集合和呼叫请求

Falcor 如何在服务器端缓存数据?

Falcor:避免过时的客户端缓存

多参构造器与 Builder 模式及链式调用的运用

为啥 Falcor 的 setValue() 不适用于外部模型?