有一个动作为"list"的控制器(ObjectController)。控制器创建并加载集合,创建视图,ObjectsPageView,并渲染它。ObjectsPageView由3个子视图组成:ObjectListView, SearchFormView和PaginationView。我不知道如何组织视图和控制器之间的交互。现在我只有两个选项:
- 在PaginationView中为链接添加参数"page"。然后,当您单击页面链接时,布局将重定向到带有新参数的ObjectController。在SearchFormView监听提交事件中,在提交时,SearchFormView本身会用新的参数重定向到ObjectController。
- 在PaginationView和SearchFormView触发自定义事件(paginationLinkClicked, searchFormSubmitted),并听取他们在控制器。当事件发生时,更改当前url,重新加载集合,视图将被重新绘制。
哪个选项更好?有没有更好的办法?
第二个选项是最好的,但你应该只有一个视图(ObjectListView),分页和搜索是在控制器上定义的操作,在该操作调用API,与特定的参数,提供数据(JSON),然后你渲染ObjectListView与新模型