Ember的复杂多重过滤路线

时间:2014-01-08 13:39:08

标签: ember.js ember-router

我的应用程序具有(有些复杂)过滤要求,因为用户可以过滤两种类别,每种类别都必须允许子类别。哦,是的,我必须允许多个类别和子类别,我希望每个组合都有一个可共享的,(有些)可读的URL。

具体地说,这是我通过一个例子说明的概括方案:

/ontario[toronto,waterloo],quebec/accommodations[hotels],attractions

这将显示安大略省多伦多和滑铁卢以及魁北克省任何城市的酒店(住宿的子类别)和所有景点。

基本上是这样的:

"/{comma-seperated regions with comma-seperated towns in square braces}/{comma-seperated categories with comma-seperated subcategories in square braces}"

我很确定默认情况下这不起作用,对Ember来说有些新鲜,我想知道从哪个方案入手。可能我不得不在某处覆盖路线(也许链接到?)。

任何一般提示都将不胜感激!

如果您认为这是一个可怕的想法,我也欢迎这种反馈。替代方案是一种更加丑陋的查询参数方法,所以我现在就喜欢这样了。

1 个答案:

答案 0 :(得分:0)

在花了一些时间了解Ember路由器后,这最终变得非常简单。

在路径的“模型”方法中,我只使用params散列来推断出要使用的正确模型。在我的情况下,由于我的URL的复杂动态部分,这不是那么简单,但这主要是字符串修改代码。

它的另一面是覆盖路线上的“序列化”方法。这与“模型”方法相反,并返回特定模型对象的动态“参数”的哈希值。这用于将模型序列化到URL中。

通过正确实施这两种方法,它可以很好地工作。