我正在尝试编写需要访问其父模型的路由。我使用this.modelFor()
,但是当我这样做时,父级的模型没有完全加载,所以它的所有属性都包含null
。访问Ember.js中的父路由模型
这是路由器,有两个动态段:
MGames.Router.map(function() {
this.resource('games', function() {
this.resource ('game', {path: '/:game_id'}, function() {
this.resource('board', {path: '/boards/:board_id'});
});
});
});
这是我GameRoute,谁的作品完美:
MGames.GameRoute = Ember.Route.extend ({
model: function (params) {
return MGames.Game.find(params.game_id);
}
});
最后,这是孩子的路线,谁需要访问游戏模式,这就是我写的。但不管我做什么,console.log()
总是打印null
。如果我检查game
变量,则isLoad
属性始终是空:
MGames.BoardRoute = Ember.Route.extend ({
model: function (params) {
var game = this.modelFor ('game');
console.log (game.get("id"));
return MGames.Board.find(game.get("id"), params.board_id);
}
});
我做得不对,或者(我怀疑),我错过了一些灰烬概念?
这正是问题所在。有趣的是,我昨天尝试了你的修改,但是,上帝知道为什么,我只改变了棋盘的“发现”方法,并且保持了游戏的一触即发和错误。聪明我。 顺便说一句,如果我可以煞费苦心地查看我之前的问题并用它来完成答案,我会再给你一个+1。非常感谢! –
该代码开始显得非常熟悉。 :) –