首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ember路由:向导步骤的不同URL

Ember路由:向导步骤的不同URL
EN

Stack Overflow用户
提问于 2014-06-21 22:20:30
回答 1查看 232关注 0票数 0

Usecase:包含多个步骤的向导。最初使用{{partial currentStepTemplate}}实现。

我想对它进行重构,使每个步骤都有一个单独的控制器。最初使用的是{{render currentStepTemplate controller=currentStepController}},但与{{partial}}不同的是,render不绑定到currentStepTemplatecurrentStepController属性,它将它们用作原始字符串。

我创建了一个路由/walkthrough/:step

问题是没有特定的模型要加载到路由上,但是我需要知道使用只能在model钩子中访问的:step参数来呈现哪个模板。

仅仅将模型作为将step参数进一步传递给setupControllerrenderTemplate的一种方式看起来并不是一个好的模式,但我不确定我还能如何实现这一点。

代码语言:javascript
复制
App.WalkthroughRoute = Ember.Route.extend(
  steps: ["", "intro", "name", "photo", "create_course"]

  model: (params) ->
    @set('stepName', params['step'])
    @set('stepTemplate', "walkthrough/teacher/_step_#{stepName}")

    # Optional controller: used only if exists
    if @container.lookup("controller:#{controllerName}")
      @set('stepController', controllerName)

    return @steps.indexOf(params['step'])

  renderTemplate: (controller, model) ->
    @render()
    @render @get('stepTemplate'),
      controller: @get('stepController')
      into: 'walkthrough'

  actions:
    nextStep: ->
      step = @modelFor('walkthrough')
      @transitionTo('walkthrough.teacher', @steps[step + 1])

    prevStep: ->
      step = @modelFor('walkthrough')
      @transitionTo('walkthrough.teacher', @steps[step - 1])
)

有什么提示/想法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-06-22 00:32:33

然后,您的url将如下所示:

代码语言:javascript
复制
#/walkthrough/step1
#/walkthrough/step2
#/walkthrough/step3
#/walkthrough/step4

使用像这样的路由器

代码语言:javascript
复制
App.Router.map(function() {
  this.resource('walkthrough', function(){
    this.route('step1');
    this.route('step2');
    this.route('step3');
    this.route('step4');
  });
});

http://emberjs.jsbin.com/musugiru/1/edit

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24342476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档