Ember无法访问动态段参数

时间:2016-04-07 11:55:21

标签: javascript ember.js

我的Router.js定义如下;

self.assetsR = [self.assets sortedArrayUsingComparator:^NSComparisonResult(ALAsset *first, ALAsset *second) {

    NSDate * date1 = [first valueForProperty:ALAssetPropertyDate];
    NSDate * date2 = [second valueForProperty:ALAssetPropertyDate];

    return [date2 compare:date1];
}];

现在在我的一条路线中,我做了

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

在我的路线\ step1 \ step2dynamic \ step3a.js中,我将模型钩子定义为

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

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

1 个答案:

答案 0 :(得分:1)

它只会出现在属于包含动态段的路径的模型钩子的参数中。

您不应该在第3步路线中使用参数,因为您的第2步路线应该使用动态线段处理任何模型数据的获取。但是,如果由于某种原因你需要在第3步路线中引用它,那么transition传入beforeModelmodel可以访问它:

// 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路径中处理。