我正在尝试使用新的路由器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
)。
看起来无法转到具有嵌套路线的自定义路线。
new
路线(并指定posts
)。应该怎么做?to
的孩子(即match("/posts", function(match) { ... })
),它还能正常工作吗?如果是这样,那孩子的名字是什么?答案 0 :(得分:1)
这实际上是Ember中的一个错误。由于index
是隐式的,因此您不需要明确提供它。
该错误已修复master。
如果你想去一条有孩子路线的路线,你应该transitionTo
路线的指定名称,而Ember会自动为你添加index
。