只是把我的 2 美分投入到这个话题中。请注意,我在生产中使用这种方法并且效果很好。这个问题实际上有两个部分。
1. 如何拥有多个动态细分?
Mike Grasotti 使用嵌套资源描述了一种方法。这种方法有效,但我认为这种方法在这种情况下有点麻烦。
为什么我觉得很麻烦?
路由是在 Ember 中分离关注点的一种方式。在这种情况下,我没有看到单独的问题。在我看来,您正试图在您的 URL 中反映表单的状态。我认为这应该是负责“形式状态”问题的一种途径。因此,我建议查看以下帖子,其中我描述了如何为每个路由实现多个动态参数:资源嵌套是启用多个动态段的唯一方法吗?
2. 当您只更改表单中的一个参数时,如何触发序列化挂钩来更新 URL?
问题是serialize hook
只有在使用新模型输入 Route 时才会触发。我猜你有一些逻辑,处理更改参数start
或end
. 我想在这种情况下您不会重新输入路线。那么在这种情况下如何再次触发序列化钩子来更新 URL 呢?我正在我的路由器中处理这样的事件,我正在使用以下代码:
var currentRouteName = this.controllerFor("application").get("currentPath");//the ApplicationController stores the name of the current Route
var url = App.Router.router.generate(currentRouteName);
App.Router.router.updateURL(url);
PS:您可以在这里查看我的生产应用程序。这个应用程序展示了德国电影院中最好的电影。即使您不懂德语,您也可以单击顶部区域中的控件之一并查看更新的 URL。我想这和你想要的差不多吧?