0

我正在尝试使用新的路由器 API(在提交 6a165ad 时),但我遇到了一些问题。

鉴于此路由器:

Router.map(function(match) {
  match("/posts").to("posts", function(match) {
    match("/new").to('new', function(match) {
      match("/author").to('author');
    });
  });
});

我正在尝试过渡到new路线。

使用新索引: this.transitionTo('new.index')

它可以工作,但是正如您所看到的那样,路由名称并不是很明确(我们甚至不知道它是针对新帖子的)。因此,这不是一个可行的解决方案。

使用posts.new: this.transitionTo('posts.new')

我希望它可以工作,但是会引发错误:

posts.new找不到路线。

我相信向索引的过渡是自动进行的,但似乎不是。

使用自定义路由名称:

由于上面指定的提交,Ember 允许自定义路由命名。由于我之前的尝试不起作用,我试图强制new路由为posts.new,但它仍然不起作用(同理,如果它是foo.new)。

看起来不可能转到具有嵌套路由的自定义路由。

TL;博士

  • 我想过渡到new路线(并指定posts)。应该怎么做?
  • 在路由器 v2.1 之前,我有没有孩子的路由to(即match("/posts", function(match) { ... })),它还在工作吗?如果是这样,它的孩子叫什么名字?
4

1 回答 1

1

这实际上是 Ember 中的一个错误。因为index是隐式的,所以您不需要显式提供它。

该错误已在master上修复。

如果你想去一个有子路由的路由,你应该transitionTo指定路由的名称,Ember 会自动index为你添加。

于 2013-01-12T00:56:53.907 回答