0

我的应用程序被父母和他们的孩子使用。

我想允许父母从他们的帐户页面编辑有关他们孩子的详细信息。我设想一个单一的表单,其中上部包含有关父级的字段,下部包含有关子级的字段。如果父母有多个孩子,则下面的部分将被标记;每个孩子一个标签。

如果可能的话,我想实现一个 RESTful 设计。到目前为止我考虑过的选项是:

选项 1 - 通过父级的资源路由公开父级和所有子级(嵌套子窗体的列表),然后使用 JavaScript 将 UI 更改为基于选项卡的布局。

选项 2 - 通过父级的资源路由公开父级和一个子级(嵌套形式)。通过嵌套路由公开同一页面,但针对特定子级。

所以:

'GET /parent/1' 将呈现父级的帐户页面,其中包含“第一个”(默认)子级的嵌套子表单。它还将包含两个或多个链接到嵌套路由的可点击链接(样式为选项卡);每个孩子一个(例如“GET /account/1/child/1”和“GET /account/1/child/2”)。

每个嵌套路由都将由一个“孩子”控制器提供服务,该控制器实际上将呈现与父路由/控制器呈现完全相同的父帐户页面,但具有路由寻址的子资源的适当填充子表单。

选项 2 似乎是一种可行的方法,但我欢迎反馈和任何其他想法。

4

1 回答 1

0

在任何一种方法中,如果您尚未保存父级,您可能难以在子级之间导航。如果您从孩子 1 导航到孩子 2,您如何存储有关孩子 1 的信息,现在您将通过呈现孩子 2 的表单来替换孩子 1 选项卡。也许选项 1 通过隐藏数据来处理这个问题,但是选项2肯定有这个问题。

我建议让用户先保存父数据,然后编辑子数据,但不要尝试同时编辑父数据和子数据。

这是对嵌套路由的一个很好的使用。通常嵌套路由是有代价的,你必须不断地发送对外部嵌套对象的引用。在这种情况下,您确实想要(或不介意)对父级的引用,因为这对您的工作流程非常重要。

但是,仅仅因为嵌套路由可以很好地工作,并不意味着 Javascript 选项可能不会更好。之后,您不必在编辑子数据的过程中重新加载页面。在最坏的情况下,如果他们的孩子比你考虑的多一个,你必须加载一个部分来添加一个新表单。

于 2012-05-08T11:19:14.367 回答