更改网址的一部分

时间:2014-01-15 15:53:30

标签: ember.js coffeescript ember-router

我在app中使用slugs而不是id。 Slug具有以下结构:bla-model-name-bla-bla-id其中bla-model-name-bla-bla是模型名称,-id是模型ID。

应用程序不关心“名称”部分它在这里用于SEO和UX ...应用程序只采用“ID”部分并使用它从API检索模型。

有时slug会发生变化,我希望app重定向(在检索模型后)到具有正确“name”部分的URL。

我试着这样做:

App.PostRoute = Em.Route.extend
     ...
     ...
     afterModel:(post,transition)->
        ...
        # checkinkg slugs
        if current_slug != valid_slug
           @transitionTo 'post', post

但在这种情况下,我们在PostRoute之后失去了所有的东西。如果需要的网址是/post-old-invalid-name-33/comments,那么在“slug fix”之后我有/post-valid-name-33。所以我们丢失了/comments部分

当然这是一个简化的例子。真正的应用程序不仅有/comments资源,还有更​​多。

如何更改网址的一部分或如何重定向而不会丢失其余的转换?

0 个答案:

没有答案