1

更新:我升级到 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'

4

0 回答 0