Ember.js 余烬:从afterModel获取目标url
我有两条路径指向同一条路线:Ember.js 余烬:从afterModel获取目标url,ember.js,Ember.js,我有两条路径指向同一条路线: this.route('items', { path: ':fruitName/rotten' }); this.route('items', { path: ':fruitName' }); 我试图从/items/fruitName路由的afterModel钩子中获取当前URL。如果我使用这个.get('router.url'),它将在转换之前为我提供上一个url。我需要检测目标是否在路径末端“腐烂” 我发现transition.intent.url的路径是一个
this.route('items', { path: ':fruitName/rotten' });
this.route('items', { path: ':fruitName' });
我试图从/items/fruitName路由的afterModel钩子中获取当前URL。如果我使用这个.get('router.url'),它将在转换之前为我提供上一个url。我需要检测目标是否在路径末端“腐烂”
我发现transition.intent.url的路径是一个字符串,但只有在手动将其输入浏览器时才有。如果单击transition的链接,则transition.intent.url未定义
如何确定转换URL是否为/items/fruitName/或/items/fruitName/rotter?是否可以使用queryParams?因此,您的URL将如下所示:
items/tomato?rotter=false
或者,您可能想使用更通用的方法:
items/tomato?state=rotter
路由和控制器的设置与此处类似:在确定您拥有的url之前,我的问题是:如何使用不同的url转换到同一路由(使用
{{link to}
)
在你的情况下,你有两个不同的目的相同的路线,我理解你想要完成什么,但你会打破余烬规则(这迫使你做一个糟糕的设计)
您可以通过使用嵌套管线来完成所需的操作。让我解释一下:
/:fruitName
和/:fruitName/rotter
具有相同的基础(相同的数据):一个水果页面,但在腐烂路径中,您希望显示在另一个选项卡中
这是一个设计问题而不是布线问题,您可以充分利用嵌套布线:
- 使用索引显示主要内容
- 显示其他内容的子例程
你可以用一个基本的css选项卡来检查。一个明显的问题是:为什么不使用同一条路线两次?@Lux,我的页面上有两个选项卡,我需要使用上面定义的路径来定位它们。我也不想使用查询参数,因为我的网站使用了所有url参数,这将是一种不规则的行为。但是为什么两个选项卡使用相同的路径呢?只需使用两条路线!我的站点的其余部分使用所有url参数,因此我不想添加这些参数,这是一种不正常的情况。