更新:我升级到 rc3 并且问题仍然存在。我发现第二个链接点击是成功的。
Ember.js v1.0.0-rc.3
我的路由器具有嵌套资源,用于上下文:
App.Router.map(function(match) {
this.resource('items', function() {
this.resource('item', { path: ':item_id' }, function() {
this.resource('images', function() {
this.resource('image', { path: ':image_id' });
});
});
});
});
我希望 '/items' 重定向到第一项:'/items/1'
App.ItemsRoute = Em.Route.extend({
model: function() {
return App.Item.find({});
},
redirect: function() {
var item = this.modelFor('items').get('firstObject');
this.transitionTo('item', item);
}
});
问题:点击 /items 错误:
Error: assertion failed: Cannot call get with 'id' on an undefined object.
注意:我的 ItemIndexRoute 也在重定向,以便在其插座中显示第一张图像:
App.ItemIndexRoute = Em.Route.extend({
model: function(params) {
return App.Item.find(params.item_id);
},
redirect: function(params) {
var image = App.Image.find(params.item_id).get('firstObject');
this.transitionTo('images');
}
});
如果我删除 ItemIndexRoute 上的重定向,那么我会在 /items 获得以下内容:
警告:直接父路由 ('a') 没有渲染到主出口,默认的 'into' 选项 ('p') 可能不是预期的 ember.js:349Transitioned 到 'items.item.index'