在子路线中呼叫动作

时间:2015-01-15 01:22:07

标签: ember.js

我有深层嵌套路线:

App.Router.map(function() {
  this.resource('user', function() {
    this.resource('authors', function() {
      this.resource('books', function() {
        this.resource('chapters', function() {
          this.resource('chapter', {path: '/:chapter_id'});
        });
      });
    });
  });
  this.resource('home');
  this.resource('blog');
});

我在路线上遇到以下错误:

路线:/user/authors/books/chapters

错误:Error while processing route: chapters.index Cannot read property 'get' of undefined TypeError: Cannot read property 'get' of undefined

此错误的原因是路由Books的模型为空。

我想有这样的逻辑:如果各种路线的其中一个模型为空,则创建一个Ember-Data记录并将此新记录提取到相关模型。

问题:我在createBook路线中有Books个动作。是否可以从父Authors路由调用此操作,以便当Ember运行Books路径的模型时,模型会找到新创建的Books记录?我的方法有误吗?我应该使用其他逻辑吗?

由于

1 个答案:

答案 0 :(得分:0)

我决定将子路线中的createBook操作升级为父路线。代码更麻烦(createBook操作不在Book路径下),但我可以通过Authors路线调用该操作。

我很乐意欢迎更有效的解决方案。