我所有的图像文件都来自其他域,并将该主机名作为变量放入Meteor.settings中。然后,如何在Meteor模板中访问此变量?
例如,在此模板中,用Meteor.settings中定义的变量或其他一些全局变量替换img.example.com
的最佳实践是什么?我认为通过使用助手将其传递给每个模板不是一个好主意。
<template name="products">
{{#each items}}
<img src="http://img.example.com/{{id}}.png">
{{/each}}
</template>
最佳答案
如何将数据传递到模板的唯一方法是通过助手。您可以使用global helper:
Template.registerHelper('imgExampleUrl', function() {
return 'img.example.com';
});
然后,您可以在许多模板中使用全局帮助器:
<template name="products">
{{#each items}}
<img src="http://{{imgExampleUrl}}/{{id}}.png">
{{/each}}
</template>
<template name="otherTemplate">
<img src="http://{{imgExampleUrl}}/{{id}}.png">
</template>
或者,如果您想从settings.json获取imgExampleUrl的值
Template.registerHelper('imgExampleUrl', function() {
return Meteor.settings.public.imgExampleUrl;
});
您的settings.json:
{
"public": {
"imgExampleUrl": "img.example.com"
}
}
关于javascript - 如何在不使用帮助器的情况下访问Meteor模板中的全局变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29839755/