动态细分上的模板

时间:2014-11-27 11:43:20

标签: javascript ember.js ember-cli

我需要制作具有多个步骤的动态表单(向导)。现在我想能够在将来快速向向导添加新步骤(或删除它们),所以我不想为每个步骤创建单独的路径,如下所示:

this.resource('wizard', { path: '/' }, function() {
  this.route('step1', { path: '/' });
  this.route('step2');
  this.route('step3');
  this.route('step4');
  this.route('step5');
});

我更喜欢有一个动态段,它接受步骤的名称并加载相同名称的相应模板,如此

this.resource('wizard', { path: '/' }, function() {
  this.route('step', { path: '/:step' });
});

这是完全可能还是这只是一厢情愿的想法。

1 个答案:

答案 0 :(得分:0)

我想出了一个解决方案,但我不确定它是否被认为是最好的...

我已在路由器中定义了一条路线,以接收带有模板名称的动态段:

this.resource('wizard', { path: '/wizard' }, function() {
  this.route('missing', { path: '/:step' });
});

然后我创建了一条缺少的路线,从模型中获取此动态段并使用它将模板加载到相应的插座中

export default Ember.Route.extend({
  renderTemplate: function(controller, model) {
    this.render('wizard/' + model.step, {
      controller: controller
    });
  }
});

我很想听听有关此解决方案的一些想法。