流星串行流到模板加载

时间:2016-12-29 19:00:37

标签: javascript mongodb algorithm meteor

我正在努力实现我的想法,但我没有足够的经验来弄清楚哪种方法最好。我有一个模板:

Dockerfile

我有一个课程的A部分和B部分。在每个部分(A& B)内有三个部分:1)观看视频,2)进行测试,3)进行另一次测试。每个部分都遵循相同的顺序。

每个步骤(视频,测试,测试)都按顺序加载到主要部分,因此当您完成观看视频时,请按下一个然后将下一个测试加载到

FROM scratch
...

假设我完成了A部分中的每个步骤,然后转到B部分。

我的问题是:有效地将这些步骤链接在一起的最佳方法是什么?或者,如何存储A部分视频中的信息,以便下一个测试可以访问它?

我正在阅读有关链接列表的内容,这些内容看起来像我可以使用但我不知道如何实现它,因为,信息保存在数据库中然后加载,或者我应该使用类似{{{ 1}}或<template name="Example"> <header> {{>MainHeader}} </header> <main> {{>Template.dynamic template=content}} {{>Template.dynamic template=subContent}} </main> <footer class="page-footer"> {{>Footer}} </footer> </template> 文件?

当我能够更有效地使用一个模板时,我只是不想拥有十几页的代码。

1 个答案:

答案 0 :(得分:0)

Meteor的方法是确保将数据保存到数据库中,每个模板都会订阅所需的数据。

当有人通过课件时,我认为你想保持他们所处的状态。此状态应位于数据库中。如果他们退出A和B之间的浏览器怎么办?重新启动后,应用程序应该知道(因为它知道它们是谁并且可以检索该状态)并向其显示B.

您不需要像动态模板一样处理所有这些问题。从您提供的详细信息中很难了解,但在ReactiveVars和帮助程序控制的单个模板中处理这些步骤也是可行的。 e.g。

<template name="A">
    {{#if showVideo}}
        {{> VideoStep testId=getTestId}}
    {{#else}}
        {{#if showTest}}
          {{> TestStep testId=getTestId}}
        {{#else}}
          {{> AnotherTestStep testId=getTestId}}
        {{/if}}
    {{/if}}
</template>

(...其中getTestId()是提供测试ID的助手,因此其他模板可以设置其状态)

在这个阶段,不要担心效率问题。让它工作w /发布和订阅。要考虑你的数据库结构。使用Meteor方法将状态保存到db。