我的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。这是一个空的对象。 我在这里做错了什么?
答案 0 :(得分:1)
它只会出现在属于包含动态段的路径的模型钩子的参数中。
您不应该在第3步路线中使用参数,因为您的第2步路线应该使用动态线段处理任何模型数据的获取。但是,如果由于某种原因你需要在第3步路线中引用它,那么transition
传入beforeModel
和model
可以访问它:
// 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路径中处理。