路由器v2.1 transitionTo不起作用

时间:2013-01-11 11:37:56

标签: ember.js transition router

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

鉴于此路由器:

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

我正在尝试转换到new路线。

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

它有效,但正如你所看到的那样,路线名称并不是真正明确的(我们甚至不知道这是一个新帖子)。因此,这不是一个可行的解决方案。

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

我希望它有效,但会引发错误:

  

找不到路线posts.new

我认为转换到索引是自动进行的,但似乎没有。

使用自定义路线名称:

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

看起来无法转到具有嵌套路线的自定义路线。

TL; DR

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

1 个答案:

答案 0 :(得分:1)

这实际上是Ember中的一个错误。由于index是隐式的,因此您不需要明确提供它。

该错误已修复master

如果你想去一条有孩子路线的路线,你应该transitionTo路线的指定名称,而Ember会自动为你添加index