我所有的图像文件都来自其他域,并将该主机名作为变量放入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/

10-17 02:58