Javascript Don';I don’我不知道如何构造一个;“故事”;余烬中的应用

Javascript Don';I don’我不知道如何构造一个;“故事”;余烬中的应用,javascript,model-view-controller,ember.js,Javascript,Model View Controller,Ember.js,我正在尝试使用Ember.js创建一个应用程序 你点击一件事,它会带你进入下一个选项 再次单击,转到下一个选项,以此类推,回答10个问题 我真的很难思考如何构建它。这10个问题有可能是动态的,因为你必须从一个问题转到下一个问题,为每个选项都设置一个URL是没有意义的,因为你一次只能处理一个 比如,我不希望url以如下方式结束: http://somesite.com/#/question1/option3/question2/option4/question3/option1/question4

我正在尝试使用Ember.js创建一个应用程序

你点击一件事,它会带你进入下一个选项

再次单击,转到下一个选项,以此类推,回答10个问题

我真的很难思考如何构建它。这10个问题有可能是动态的,因为你必须从一个问题转到下一个问题,为每个选项都设置一个URL是没有意义的,因为你一次只能处理一个

比如,我不希望url以如下方式结束:

http://somesite.com/#/question1/option3/question2/option4/question3/option1/question4/option2/question5/option2/question6/option2/question7/option2/question8/option2/question9/option2/question10/option2
这是不实际的。。。至少,这对我来说并不实际

是否有在同一页面上生成多个视图以与同一模板一起使用的示例


嗯。我希望我有更好的方式问这个问题。我真的很想喜欢Ember.js,但它在路由器和URL上的位置太多,这让我很难想象如何以最佳方式组织它。

这里有一种方法可以组织它:

BIG_GIANT_ARRAY_OF_QUESTIONS = [
  {
    id: 1,
    question_text: 'I am the first question',
    answers: [{
      answer_text: 'I am an answer',
      next_question_id: 2
    },{
      answer_text: 'I am another answer',
      next_question_id: 3
    }
  },
  //another question object
]
因此,每个问题都有一个id,每个答案都会提到另一个id来保持故事的进行

如果这对您来说是一个确定的设置,下面是一些代码:

首先,您可以有一个动态路径,如“somesite.com/#/questions/4”

在路由器中,您可以构建如下URL:

YourStoryApp.Router.map(function() {
  //other routes
  this.resource('questions', function() {
    this.resource('question', {path: '/:question_id'}
  });
});
详情如下:[http://emberjs.com/guides/routing/defining-your-routes/#toc_dynamic-[现场][1]

然后,在路线中,您可以返回问题的庞大列表,也可以返回单个问题:

YourStoryApp.QuestionsRoute = Ember.Route.extend({
  model: function(params) {
    return BIG_GIANT_ARRAY_OF_QUESTIONS;
  }
});

YourStoryApp.QuestionRoute = Ember.Route.extend({
  model: function(params) {
    return this.modelFor('questions').findBy('id', params.question_id);
  }
});
现在,每当你访问“/questions/4”,你都会从大量的问题中得到这个问题

最后,这可能是您的问题模板(带有更多html):


好的,这是一段很长的代码,我希望其中的一些有助于头脑风暴。我为任何输入错误/错误等道歉。

模板将基于什么?在我看来,你们有10个模型(每个模型都有一个问题和一个相关的答案)。这些问题会是一组通用的模板吗?每个问题的模板都是相同的。然后在侧面有一个在问题之间共享的模板,当你点击时,它会显示每个问题的不同答案。至少,这是我的想法。这些想法太棒了。你不需要道歉,你提供了帮助,我真的很感激。我会接受你的回答,因为你真的帮了我一把。我曾试图与Ember、路由器和URL作斗争,但我想仅仅从一个角度来考虑是没有意义的。
Question {{id}}
{{question_text}}

Answers
{{#each answers}}
  {{#link-to 'question' next_question_id}}
    {{answer_text}}
  {{/link-to}}
{{/each