【发布时间】:2012-12-06 17:53:10
【问题描述】:
我正在寻求一些关于如何在 Backbone 中处理模型的部分编辑和验证的建议。
我有一个包含 20 多个属性的工资单模型。用户可以编辑部分工资单(例如加班属性),应用程序将显示一个模式对话框,用户可以更改与加班相关的四个属性。
用于编辑加班的模态对话框有一个相关的主干视图“OvertimeEditor”,其中包含视图逻辑。有 10 个这样的视图/模式对话框用于处理不同的属性。
编辑器视图不直接与模型交互,对此有一个中介。中介调用视图上的参数化函数,该函数填充并显示模态对话框。当用户点击保存视图时,然后调用中介上的参数化函数来更新模型属性。
我应该如何处理对话框中的验证?即我只想验证有问题的四个属性,而不是整个模型。
编辑器视图当前不使用模型。我应该创建仅用于编辑器视图的模型吗?例如工资单加班模型?或者我应该在视图中手动实现验证(听起来不对)?
【问题讨论】:
-
为编辑创建具有足够属性的 per-view 模型,然后他们可以根据主要的大模型初始化自己,您可以有一种方法将迷你模型合并回主要模型。您可以通过验证器函数库共享验证代码。额外的迷你模型层使得意外编辑错误内容变得更加困难,我发现编辑副本并在完成后合并它(即 git 风格的 fork/commit/merge 编辑)可以大大简化事情。
-
明白了。我假设,就我而言,我会在调解器中推送用于传输属性的代码?
-
或者可能是迷你模型构造函数(
mini_model = new MiniModel({ full_model: model }))。取决于在您的特定上下文中它在哪里有意义(像往常一样:)。
标签: backbone.js