我需要一种方法为成员路由器路由到递归路径。
For Example:
/:module
/:module/:submodule
/:module/:submodule/:submodule
/:module/:submodule/:submodule/...使用Embers路由器可以做到这一点吗?如果可以,如何做到?
我一直在寻找例子,撕裂源代码,我几乎得出了结论,这是不可能的。
在前面的问题中,有人给我指出了一种手动获取url并将其拆分的方法,但我被困在创建路由器要解析到的状态。
到目前为止,在我的项目中,我目前只使用Ember.HashLocation来设置我自己的状态管理器。
之所以需要这样做,是因为模块定义存储在数据库中,并且在任何给定的点上,可以递归地添加子模块的子模块。因此,我正在尝试让应用程序引擎处理更改。
发布于 2013-01-09 21:52:52
数据库中的子模块是否没有唯一的ID?在我看来,与其在路径中表示您的层次结构,不如直接转到适当的模块或子模块。当然,层次结构仍然在您的数据模型中,但它不应该在您的路由方案中表示。只需使用:
/module/:moduleId
/submodule/:submoduleId并且不要编码路由中的层次结构。我知道这样做可能很自然,但可能没有技术上的原因。
如果你的子模块没有唯一的ID,也许一个小的tougher...you可以通过将祖先ID连接在一起(比如,带下划线)来构建一个唯一的ID,这类似于拆分URL,但可能更简洁一些。我要说的是,Ember/Ember Data似乎不太容易与具有组合键的实体一起使用--如果一切都有一个简单的数字键,一切都会变得更容易(任何人想在这方面与我争论,请向我解释一下是如何做到的!)。
发布于 2013-01-09 17:50:53
你的意思是这样的:
App.Router.map(function(match) {
match('/posts').to('blogPosts');
match('/posts/:blog_post_id').to('showBlogPost');
});https://stackoverflow.com/questions/14232322
复制相似问题