编程语言
首页 > 编程语言> > javascript-重定向到Ember数组中的第一个对象

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'));
  }
}

标签:ember-js,redirect,javascript
来源: https://codeday.me/bug/20191121/2055762.html