在Backbone.js中使用“自动建议查找”对表单进行建模



我有一个顶部有一个小表单的报告UI,用户可以在其中使用"自动建议"文本框按名称查找一个人,当他们选择一个时,我会设置一个隐藏的ID字段。然后,他们输入开始和结束日期,然后点击提交以加载下面的报告。报告数据是使用人员ID和日期范围作为骨干路线获取的。我还可以在报告标题中显示此人的姓名,因为我从"自动建议"查找中获得了该姓名。

问题是,如果有人为报告添加书签(这是一个很好的功能),我想重新填充表单(显示此人的姓名)和报告标题。

因此,目前我有一个路由('id/startdate/to/enddate'),它有时由已经填充的表单模型触发,有时由书签/刷新触发,需要从路由数据和服务器端数据重新填充表单模型。

你会如何建模?我本来打算把一个模型绑定到表单上:

{ id: 234, name: 'Bill', startDate: '1/1/2011', endDate: '1/1/2012' }

但我很难接受这样的想法,有时需要获取名称并填充表单,有时已经有了填充的表单(和名称)。感觉我的主干视图/模型/路线应该有更好的设计。

您可以通过触发一条带有Model将监听的名称、startDate等参数的消息来从路由器填充Model。

在设置模型上的数据的视图中也可以执行相同的操作。因此,无论您从哪里获得信息(视图、路由器),您的模型都会正确地保持状态。

然后,表单视图可以侦听对其模型的更改,并使用预先填充的模型更改信息重新呈现自己。

希望能有所帮助。

最新更新