我试图将我的应用迁移到新的emberjs路由API。Emberjs新的路由和查询字符串或自定义路由匹配器
使用旧路由器我有一些解决方法,为由ID保存的对象和通过一组参数描述的新对象提供类似的URI。这是为了在用户之间交换链接到对象的能力而没有永久保存它。这是从我的应用的两种简化有效的途径:
/objects/12 // fetch object by id (/objects/:object_id)
/objects/<serialized params> // build new object from params (/objects/:params)
此路线的两个类似于路由器,因为它们都具有动态部分和静态部分是相等的。所以我写了自定义RouteMatcher
以拾取正确的路线。缺乏查询字符串解析迫使我做这个快速和半解法的解决方案,也有关于github上的这个功能的ancient ticket。
随着新的路由器匹配已被提取到单独的包(路由识别器),所以我不能做的伎俩(或它将充满黑客和注入)。
我可以看到我已经从这些选项中进行选择:
- 完全重写我的URI和独立的所有交叉路线
- 重写的URI,但试图实现查询字符串分析器新Ember.Router
- 将所有逻辑成一条路由并重新实现只序列化/反序列化方法(脏东西)
二的解决方案似乎更干净。
什么是最好的非复杂的决定?我应该尝试寻找另一种方式吗?
覆盖路线的模型方法并没有诀窍? – zaplitny
这是选项#3。当然,它会做,但休息部分路线是略有不同的保存和新的对象,所以逻辑会搞砸。 – konung