【问题标题】:Ember.Js Using TransitionTo Route with dynamic segmentEmber.Js 使用带有动态段的 TransitionTo Route
【发布时间】:2020-05-01 11:33:28
【问题描述】:

我有一个 ember 应用程序(版本 3.14),我想通过动态段转换到 Route

当用户访问 /projects/other 时,我想重定向到 /projects/other/2020 我改变了我的项目/其他路线,所以它看起来像这样,但它给我一个错误

import Route from '@ember/routing/route';

export default Route.extend({
    
    model: function(){
    
    },
    redirect() {
        let year_data = {
            year: '2020'
        };
        this.transitionTo('projects.other',year_data);
    }
});

这就是我的项目路由在 routes.js 中的样子

this.route('projects', function() {
  this.route('notable',{path: '/'});
  this.route('other', function() {
    this.route('list', {path: '/:year'});
  });
});

这些是来自谷歌浏览器控制台的错误

error screenshot

【问题讨论】:

  • 我的错误,我试图过渡到 /projects/other/2020 路线是 projects.other.list 将代码更改为 this.transitionTo('projects.other.list',year_data) 解决了这个问题。再次,这只是我不小心没有重新检查路线

标签: ember.js


【解决方案1】:

错误信息很清楚。您正在尝试重定向到没有任何动态段的 projects.other.index 路由。此外,根据docs,您需要传递 id 而不是对象。当您传递一个对象时,ember 将其视为准备使用模型。所以,你的代码应该是

this.transitionTo('projects.other.list', '2020');

【讨论】:

  • 传递对象也可以,注意属性必须与动态段同名(在本例中为:year)。谢谢您的回答。我不小心遗漏了 .list。
猜你喜欢
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多