Ember无法访问动态段参数

Ember unable to access dynamic segment parameter

本文关键字:参数 段参数 动态 访问 Ember      更新时间:2024-02-12

我的Router.js定义如下;

this.route('step1', function() {
      this.route('step2dynamic', {path: '/:dynamic_step_name'}, function(){
            this.route('step3a');            
            this.route('step3b');
      });
});

现在在我的一条路线上,我做

this.transitionTo('step1.step2dynamic.step3a', 'step2DynamicValue');

在我的routes''step1''step2dynamic''step3a.js中,我将模型挂钩定义为

model: function(params) {
    // Why is params not contain the passed parameter value ?
}

这里我没有得到params.dynamic_step_name。它是一个空对象。我在这里做错了什么?

它将只在属于包含动态段的路由的模型挂钩的参数中。

您不应该在步骤3路由中使用param,因为步骤2路由应该使用动态段处理任何模型数据的获取。但是,如果出于某种原因,您需要在步骤3路由中引用它,则在传递到beforeModelmodel:的transition中可以访问它

// routes/step1/step2dynamic/step3a.js
import Ember from 'ember';
export default Ember.Route.extend({
  model (params, transition) {
    // should log { dynamic_step_name: "step2DynamicValue" }
    console.log(transition.params["step1.step2dynamic"]);
  }
});

不过,如果您使用它来获取数据,则应该在步骤2路由中处理它。