首页 > 解决方案 > 无法transitionTo,错误“传递的上下文对象多于动态段”不正确

问题描述

我正在使用 Ember 3,并且在使用带有动态段的路由器服务时遇到问题。transitionTo在我的组件中,我通过单击将路由器服务用于子路由,但出现此错误:

错误:传递的上下文对象多于路由的动态段:data.images.image

这是在组件 js 中,我使用 transitionTo 并为一个动态段传递一个参数:

router: service(),
actions: {
    navToSubpage() {
        // this.image is a single Ember Data record/object
        this.router.transitionTo('data.images.image', this.image)
    }
},

这是来自我的路由器,它有一个带有一个动态段的嵌套路由:

Router.map(function() {
  this.route('data', function() {
    this.route('images', function() {
      this.route('image', {path: '/image_id'});
    });
  });
});

我究竟做错了什么?在这种情况下,这个错误对我来说没有意义。

标签: ember.jsember.js-3

解决方案


我的路由器:之前缺少一个。image_id因此路由器没有将其识别image_id为动态段,因此 mytransitionTo被解释为具有太多参数(1 而不是 0)。它与路由器服务无关。

这是更正后的路由器:

Router.map(function() {
  this.route('data', function() {
    this.route('images', function() {
      this.route('image', {path: '/:image_id'});
    });
  });
});

推荐阅读