首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ember.js中具有奇怪行为的多个嵌套路由

Ember.js中具有奇怪行为的多个嵌套路由
EN

Stack Overflow用户
提问于 2014-06-11 01:05:48
回答 1查看 158关注 0票数 1

我从Ember.js开始,我有一个页面的三级路径。这是路由器地图的样子:

代码语言:javascript
复制
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中,我使用以下代码转换到创建/问题路由:

代码语言:javascript
复制
this.get('controller').transitionToRoute('create/questions', test);

这很好,但是在我的CreateQuestionsRoute中,这段代码不起作用:

代码语言:javascript
复制
this.get('controller').transitionToRoute('create/questions/question', question);

收到的错误:

代码语言:javascript
复制
Uncaught Error: Assertion Failed: Error: Assertion Failed: The route create/questions/question was not found 

使用Chrome Ember检查插件,我可以看到路线如下:

代码语言:javascript
复制
CreateRoute
CreateQuestionsRoute
CreateQuestions.QuestionRoute

这似乎是武断的行为。对于如何处理多个嵌套路由,没有多少指导。一些参考资料告诉我,我的路线图实际上应该是这样的:

代码语言:javascript
复制
App.Router.map(function(){
        this.resource('tests');
        this.resource('create', function() {
            this.resource('questions', {path: ':test_id' }, function() {
                this.resource('question', {path: ':question_id'});
            });
        });
    });

这样路由名称将自动嵌套(不需要点标记),但这不起作用。谁能用安伯的智慧为我亮点光?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 01:20:02

就这样吧:

代码语言:javascript
复制
App.Router.map(function(){
    this.resource('tests');
    this.resource('create', function() {
        this.resource('questions', {path: ':test_id' }, function() {
            this.resource('question', {path: ':question_id'});
        });
    });
});

添加命名空间资源的唯一原因是资源不是唯一的。这意味着你可以使用任何一条路线

代码语言:javascript
复制
this.transitionTo('questions', model);

this.transitionTo('question', modelForQuestions, modelForQuestion);

示例:http://emberjs.jsbin.com/OxIDiVU/636/edit

如果您希望保留您的命名空间,我将使用camelCase而不是点表示法,因为通常点表示当前作用域上的属性。

示例:http://emberjs.jsbin.com/OxIDiVU/637/edit

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24153177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档