3

我有一张门票清单。当我去路由“票”时,我会显示它们的列表。我希望自动选择第一个项目。我在stackoverflow上找到了解决方案,但它对我不起作用。代码是:

window.App = Ember.Application.create();

App.Router.map(function() {
    this.resource('tickets', function() {
        this.resource('ticket', { path: ':ticket_id' });
    });
    this.resource('feedback');
});

App.TicketsRoute = Ember.Route.extend({
    model: function() {
        return App.Ticket.find();
    }, 
    redirect: function() {
        var ticket = this.modelFor('tickets').get('firstObject');
        this.transitionTo('ticket', ticket);
    }
});

当我第一次访问门票路线时,它会选择第一项。但后来我去另一条路线并返回门票。之后我得到下一个错误:

WARNING: The immediate parent route ('a') did not render into the main outlet and the    default 'into' option ('p') may not be expected

并且标记变得错误,它不显示项目列表(仅关于第一张票的详细信息)。我不明白这个错误。

提前致谢!

4

1 回答 1

1

警告是因为正在渲染的模板在其父级中没有找到出口。我猜也许你有一个ticket.hbs模板但没有tickets.hbs?理想情况下,它应该是这样的:

// in tickets.hbs
{{#each ticket in tickets}}
  //ticket link
{{/each}}
{{outlet}}

// tickets/index.hbs
Please select a ticket from the list

// in ticket.hbs
// ticket details

有关说明,请参阅https://github.com/emberjs/ember.js/pull/1916#issuecomment-13669980

于 2013-05-26T02:41:31.970 回答