【发布时间】:2014-06-11 01:05:48
【问题描述】:
我从 Ember.js 开始,其中一个页面有一个三级路由。这是路由器地图的样子:
App.Router.map(function(){
this.resource('tests');
this.resource('create', function() {
this.resource('create.questions', {path: ':test_id' }, function() {
this.resource('create.questions.question', {path: ':question_id'});
});
});
});
在我的 CreateRoute 中,我使用以下代码转换到 create/questions 路由:
this.get('controller').transitionToRoute('create/questions', test);
这很好用,但在我的 CreateQuestionsRoute 中,此代码不起作用:
this.get('controller').transitionToRoute('create/questions/question', question);
收到的错误:
Uncaught Error: Assertion Failed: Error: Assertion Failed: The route create/questions/question was not found
使用 Chrome Ember 检查器插件,我可以看到路由是这样列出的:
CreateRoute
CreateQuestionsRoute
CreateQuestions.QuestionRoute
这似乎是任意行为。关于如何处理多个嵌套路由没有太多指导。一些参考资料告诉我,我的路线图实际上应该是这样的:
App.Router.map(function(){
this.resource('tests');
this.resource('create', function() {
this.resource('questions', {path: ':test_id' }, function() {
this.resource('question', {path: ':question_id'});
});
});
});
路由名称会自动嵌套(不需要点符号),但这不起作用。任何有 Ember 智慧的人都可以为我发光吗?
【问题讨论】:
标签: ember.js