无法过渡到,错误“传递的上下文对象比动态段多”是错误的

han*_*ars 1 ember.js ember.js-3

我正在使用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)
    }
},
Run Code Online (Sandbox Code Playgroud)

这是从我的路由器发出的,该路由器具有带有一个动态网段的嵌套路由:

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

我究竟做错了什么?在这种情况下,该错误对我而言没有任何意义。

han*_*ars 5

我在路由器中错过了:以前image_id。因此,路由器无法识别image_id为动态网段,因此我transitionTo被解释为参数太多(从1到0)。它与路由器服务无关。

这是正确的路由器:

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