javascript-重定向到Ember数组中的第一个对象

我从Ember – Automatically redirect to firstObject得到了部分解决方案,但是它没有按预期工作:

我的路由器:

App.Router.map(function() {
    this.resource('races', { path: '/'}, function() {
        this.resource('race', { path: '/:race_id'}, function() {
            this.route('edit');
            this.route('delete');
            this.route('splits');
        });
        this.route('create');
        this.route('info');
    });
});

基本上,我有一个比赛列表,到达比赛具有时间/步伐视图(比赛资源).我想要的是永远不要进入种族资源,因此,如果我正在查看种族并将其删除,我将被重定向到第一个种族.

使用Ember – Automatically redirect to firstObject的解决方案,一切似乎都重定向到了第一场比赛,在那一刻,我所有的联系和动作都中断了,我“不能离开”第一场比赛.

这是我从另一篇文章中实施解决方案的方法:

App.RacesRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('race');
    },
    redirect: function(model) {
        var firstRace = this.modelFor('races').get('firstObject');
        this.transitionTo('race', firstRace);
    }
});

解决方法:

redirect有两个参数传递给它,即模型和转换对象.转换具有属性targetName,您可以在其中根据其值有条件地重定向.

redirect: function(model, transition){
  if(transition.targetName =='races.index'){
    this.transitionTo('race', model.get('firstObject'));
  }
}
上一篇:linux下非root用户获得/dev/ttyUSB0的读写权限


下一篇:javascript-视频播放完毕后,如何重定向到其他URL