如何将全局 Meteor 变量传递给模板并访问和使用它们
How can I pass global Meteor variables to templates and access and use them?
我正在做一个模拟股票市场的小型SPA游戏。影响价格和行为的变量有很多,但最终核心是一组有限的变量,这些变量适用于游戏运行的所有内容。这就是我想在全球范围内存储这些值的原因。
因此,我无法弄清楚如何将这些全局变量引入模板以便我可以使用它们。我已经在下面展示了我这样做的黑客方式,它有效,但它已被弃用。我已经阅读了文档,但找不到它在哪里清楚地说明了如何正确执行此操作。这是我得到的:
客户/账户.js
if (Meteor.isClient) {
Template.bankAccounts.BANK_ACCOUNTS = function(){
return BANK_ACCOUNTS;
}
}
client/rogue.html(这是基本的 HTML 页面)
<head>
<title>rogue</title>
</head>
<body>
<h1>Rogue</h1>
{{ > bankAccounts }}
</body>
<template name="bankAccounts">
<p>Trading Account: {{ BANK_ACCOUNTS.trading }}</p>
<p>Loan Account: {{ BANK_ACCOUNTS.offshore }}</p>
<p>Offshore Account: {{ BANK_ACCOUNTS.loan }}</p>
<p>Total Holdings: {{ BANK_ACCOUNTS.holdingsValue }}</p>
<p>Net Worth: {{ BANK_ACCOUNTS.netWorth }}</p>
<button>Sleep</button>
</template>
lib/globals.js
BANK_ACCOUNTS = {
trading: 100,
offshore: 200,
loan: 300,
holdingsValue: 4000,
netWorth: 0
}
此外,正确加载它们后,使用按钮单击事件时访问它们的语法是什么?任何帮助表示赞赏!
谢谢汤姆
只需创建一个全局助手来配合您的全局变量:
Template.registerHelper('BANK_ACCOUNTS',function(){
return BANK_ACCOUNTS;
});
然后,您可以在任何模板中使用{{BANK_ACCOUNTS.key}}
。
如果你想为应用的全局变量提供一个合理且不混乱的结构,我强烈建议阅读以下文章:
https://themeteorchef.com/snippets/making-use-of-settings-json/
我想这就是你要找的。
相关文章:
- 在page.open()-PhantomJS中无法访问全局变量
- 如何在 JavaScript 中访问全局变量
- 从Javascript中的对象方法中访问全局变量
- 您可以从S3上托管的Iframe中访问全局JS变量吗
- 无法从打字稿访问全局变量
- 未访问全局变量,未运行代码
- 为什么我无法从茉莉花中的 javascript 函数访问全局变量
- TypeScript:从类访问全局变量而不导入
- 当 Node.js 中的参数名称相同时,如何从函数访问全局变量
- 如何在Meteor Iron路由器的内部模板中访问全局数据
- 为什么我不能在我的 js 函数中访问全局变量
- Chrome扩展JSONP请求访问全局变量
- Javascript:匿名函数,访问全局变量
- 从 chrome 扩展程序中的内容脚本访问全局对象
- Mocha测试未访问全局变量
- Nodejs如何在回调中访问全局val
- 访问全局变量
- 如何从解析模块访问全局变量
- 在不拥有页面的情况下访问全局JS变量
- 如何在Rails应用程序中以不引人注目的javascript访问全局javascript变量