从路径emberjs中删除动态段信息

时间:2017-05-15 20:22:22

标签: javascript ember.js routing routes

我有一个余烬引擎,在其中我定义了一条路线。它按预期工作。它被称为my-route。它定义如下:

this.route('my-route', {path: '/my-route/:myparams'});文件中的

routes.js

如您所见,它有一个动态细分,并根据myparams显示不同的值。

我想为此route添加嵌套route。让我们说.../my-route/1显示一个项目列表。当用户点击页面上列出的任何项目时,路线应为:my-route/display,而不是my-route/1/display。我不希望1在这里,因为它可能会产生误导。

此外,link-to也没有打开任何内容,点击什么都不做。 这就是我更改routes.js文件的方式:

this.route('my-route', {path: '/my-route/:myparams'}, function() { this.route('display'); });

display.hbs文件中,我添加了虚拟数据,display.js也是空的,只是从Ember.route延伸。 这样的my-route.hbs链接:

{{#link-to 'my-route.display'}} Open me {{/link-to}}'

我是EmberJS的新手,如果有人能告诉我如何:

,我将不胜感激
  1. 删除动态细分信息
  2. link-to工作
  3. 谢谢!

2 个答案:

答案 0 :(得分:1)

1)我认为没有简单的方法可以从网址中删除动态细分 - 如果必须,您可能只是不使用动态细分并通过其他方式将信息发送到转换路径 - 您可以设置控制器直接  " newRoute.controller.set(' someProperty',my_param);" 或使用需要api(http://emberjs.com/guides/controllers/dependencies-between-controllers/

但请注意,这两种方法都将使用控制器。如果您需要根据查询参数加载路径中的数据,请记住的是使用服务

但是这些方法并不是非常复杂,我只说如果动态段是绝对的,那就只能去做。

2)这个更容易 - 你需要在使用链接时传递动态部分以及路径名称 - 如ember guide中给出的那样 https://guides.emberjs.com/v2.0.0/templates/links/

答案 1 :(得分:0)

根据与@Lux和@Chhirag Kataria的讨论,我最终制作了两条不同的路线。我使用my-route作为虚拟路由,并嵌套了displaylist路由。