我正在努力找出使用来自 Meteor 中的外部 API 调用的数据填充模板的基本模式。
这些是游戏中的元素
- 一个新的 Meteor 项目,通过运行创建
meteor create monkeyproject
- 返回 JSON 数组的外部 API 的 URL。假设它是
example.com/api/getmonkeys
. 它返回一个猴子数组,每个猴子都有一个不同的name
. monkeyTemplate
使用{{#each}}
循环调用的 Handlebar 模板。假设是这样的:<template name="monkeyTemplate"> {{# each monkeys}} One of our monkeys is named {{name}}. <br> {{/each}} <input type="button" id="reload" value="Reload monkeys" /> </template>
我想要发生的事情
- 当页面加载
monkeyTemplate
时,我们的外部 URL 中充满了猴子。 - 当用户单击按钮时,再次调用外部 URL 以重新加载猴子。
问题
在 Meteor 中执行上述操作的标准模式是什么?冒着混淆问题的风险,我将包括一些我理解的起点。
我们可以使用从
Template.monkeyTemplate.monkeys
函数返回的任何内容填充模板。鉴于页面将在外部请求完成之前加载,我们如何使用来自外部 URL 的内容填充它?我们可以使用
Meteor.HTTP.call("GET", "http://example.com/api/getmonkeys", callback )
. 我们把这个请求放在哪里,在这种情况下我们把什么放在我们的回调函数中?Meteor.isServer
我们可以通过使用/Meteor.isClient
条件或将我们的代码放入名为client
和server
文件夹的文件中来控制服务器端发生的事情和客户端发生的事情。服务器端与客户端需要哪些代码?我们通过将函数附加到 来确定单击按钮时会发生什么
Template.monkeyTemplate.events['click #reload']
。在这种情况下,我们的回调函数会发生什么?
我不会用我蹩脚的代码来混淆这个问题。我不是在寻找任何人为我编写或重写应用程序——我只是在寻找指南、标准模式、最佳实践和陷阱。希望这对其他初学者也有指导意义。