在scala或scalajs Diode中,现有类型中的任何一种都符合“;更新一个没有'还不存在”;
In scala or scalajs Diode, do any of the existing types line up with the use case of "updating a model that doesn't yet exist"?
这里有一个常见的情况:您有一个表单,并且您对该表单的提交感兴趣。您可以通过添加服务器端验证器,甚至客户端验证器来增加问题,但提供验证器只是为了确保您提交的输入在该实例中有效;在0和提交之间收集的任何状态都将被丢弃,并且是偶然的。
这里有一种不太常见的情况:您的表单有一个密码/确认字段,您需要连接该字段才能以显而易见的方式工作,并连接以显示密码强度(和有效性)的指示。在过去,我看到过很多"在更改时为事件处理程序编写一个jQuery回调,并到此为止。"这只是一个更极端的情况,需要介于两者之间的状态才能到达目的地,而不是目的地本身。
现在有一种非常罕见的情况:你需要跟踪这份表格的输入,因为这是美国政府用来与怀俄明州核掩体中的人沟通的表格。表单输入在提交时有效当然很重要,但我们还需要尽可能多地了解它是如何到达那里的。比方说它是一个登录表单。例如,如果我们跟踪从0到提交的事件序列,并将其与过去进行比较,我们可以检测到用户行为的异常。我们可以在听说登录服务器问题之前确定是否存在问题。所以这并不总是一次性信息。
我想将事件onChange
映射到一些二极管概念,但我很难弄清楚我应该做什么
- 我可以为每个字段类型和排列的每个对象类型定义一个新的
case class
,并将它们全部粘贴在根模型中(这似乎是一种愚蠢的方法) - 我可以定义一个表示"输入值中未提交的更改"的通用数据结构,它也将指示模型和字段的更改。看起来是最佳的,但可能是不必要的,需要大量的工作和努力才能做好
- 我可以使用现有的数据结构,比如
Pot
,来代替我的Scratch
数据结构。也许是最好的主意,但不确定该用哪一个
这就是我现在的处境……任何深思熟虑的建议都将不胜感激。
这可能是使用聊天效果更好的地方,但这里有一些关于此事的想法。
有三个地方可以存储这样的事件日志:
-
处于视图构件的状态。只需将带有时间戳的事件添加到存储在视图状态中的列表中。提交时,将此列表与其他数据一起发送。
-
在二极管型号中。同样,在模型中存储一个事件列表,并与表单数据一起提交。
-
在服务器中。将每个事件分别发送到服务器,让它担心它们的含义。根本不需要在客户端存储。
对于这样的瞬态数据,我根本不会通过二极管进行路由,而是使用选项1或3进行传输。
- 在scala或scalajs Diode中,现有类型中的任何一种都符合“;更新一个没有'还不存在”;
- Meteor.js只更新一个参数,而不是整个集合
- 多个进度条可视地只更新一个进度条
- 将字符串转换为数组使用javascript更新一个值并返回一个字符串
- 从knockout.js中的另一个对象更新一个深度结构化的javascript对象
- JavaScript更新一个2MB的JSON文件
- 在动态表格单元格跨度中单击时更新一个权重值
- 通过应用程序缓存仅更新一个文件
- 我想更新一个.json文件,请告诉我如何去做
- 我们可以更新一个javascript数组变量,而不使用ajax重新加载页面吗?
- 根据 Angular 2 中另一个组件中单击的内容更新一个组件中的数据
- 我需要根据当前年份动态更新日期.目前在 html 中硬编码.需要更新一个单词
- 更新一个控制器中的模型,该模型被监视并位于不同的包中,并由另一个控制器使用
- 如何使用来自另一个单元格的 onChange 事件更新一个单元格
- 在其他元素的滚动事件上删除更新一个元素的scrolltop/scrollleft的延迟
- 更新一个简单的jQuery/CSS代码
- 如何在不更新另一个的情况下更新一个Javascript对象数组
- 在所有跨度上循环并更新一个失败的whit JQuery
- 你能更新一个webkitNotifications吗
- 更新一个实时的mongoose js应用程序