【发布时间】:2017-05-15 20:22:21
【问题描述】:
我有一个 ember 引擎,并在其中定义了一条路线。它按预期工作。它被称为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.jsfile 的方式:
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 的新手,如果有人能告诉我如何操作,我将不胜感激:
- 删除动态段信息
- 让
link-to工作
谢谢!
【问题讨论】:
-
我认为您有 X-Y 问题。为什么
/my-route/1会显示一个list 项?它应该显示项目1的内容。请详细说明您要显示的内容,以及为什么要按您所说的那样嵌套路由。您的嵌套可能有问题。 -
我想用
my-route/param显示列表,然后单击其中一个项目,打开实际项目。或许我应该重新审视我的设计? -
但
my-route/param上的项目列表与param相关?然后,如果您显示实际项目它不再与参数相关?并且你的 UI 是嵌套的。可能只是不要嵌套路线。如果您的 UI 没有嵌套,请不要嵌套您的路线。 -
是的,和
param有关。是的,当显示实际项目时,它将不再与参数相关。问题是我有一条路线称为list,另一条路线称为display。那么就不需要my-route。我将如何管理它? -
是的。然后不要使用
my-route。为什么要my-route?
标签: javascript ember.js routing routes