我有两条路径指向同一条路线:
this.route('items', { path: ':fruitName/rotten' });
this.route('items', { path: ':fruitName' });
我正在尝试从/ items / fruitName路由的afterModel挂钩中获取当前URL。如果我使用this.get(' router.url'),它会在转换之前给我以前的URL。我需要检测目标是否已经腐烂了#39;在路径的尽头。
我发现transition.intent.url将路径作为字符串,但只有在手动输入浏览器时才会这样。如果我单击转换链接,则transition.intent.url未定义。
如何确定转换网址是/ items / fruitName /或/ items / FruitName / rotten?
答案 0 :(得分:1)
在确定您拥有哪个网址之前,我的问题是:如何使用不同的网址转换到同一路线(使用{{link-to}}
)?
在你的情况下,你有两个不同目的的相同路线,我明白你想要完成什么,但你会破坏余烬规则(这会迫使你做出糟糕的设计)。
您可以使用嵌套路线来完成您想要做的事情。让我解释一下:
/:fruitName
和/:fruitName/rotten
具有相同的基础(相同的数据):水果的页面,但在腐烂的路线中,您希望显示在另一个标签中。
这是设计问题而不是路线问题,您可以充分利用嵌套路线:
您可以使用基本的css标签查看example here。
答案 1 :(得分:0)
您可以使用queryParams吗?所以你的URL看起来像这样:
items/tomato?rotten=false
或者你想要更通用的东西:
items/tomato?state=rotten
路线和控制器的设置类似于以下内容:https://guides.emberjs.com/v2.14.0/routing/query-params/