我正在努力实现我的想法,但我没有足够的经验来弄清楚哪种方法最好。我有一个模板:
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>
文件?
当我能够更有效地使用一个模板时,我只是不想拥有十几页的代码。
答案 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。