我有深层嵌套路线:
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记录?我的方法有误吗?我应该使用其他逻辑吗?
由于
答案 0 :(得分:0)
我决定将子路线中的createBook
操作升级为父路线。代码更麻烦(createBook
操作不在Book
路径下),但我可以通过Authors
路线调用该操作。
我很乐意欢迎更有效的解决方案。