This meteorjs package allows you to get access to the objects and values you have stored at Meteor.settings.public within your templates.
So you do not need a number of template helpers by yourself anymore.
You want to show the information given by your settings at your client app.
$ export METEOR_SETTINGS="{ public: { about_info: 'Hello World App', version: '1.0' } }"
$ meteor
Alternative you may use --settings option
$ meteor --settings mysettings.json
mytemplate.html:
<template "mytemplate">
<span>{{about_info}}</span>
<span>{{version}}</span>
</template>
mytemplate.js:
Template.mytemplate.helpers({
about_info: function() {
return Meteor.settings.public.about_info;
},
version: function() {
return Meteor.settings.public.version;
}
});
mytemplate.html:
<template "mytemplate">
<span>{{pubSettings.about_info}}</span>
<span>{{pubSettings.version}}</span>
</template>
That's it
You can add this package to your meteor app like any other package from atmosphere
$ meteor add 4commerce:pubsettings-template-helper
You may address your public settings directly within your templates by just using the relative path from starting at the Meteor.settings.public element.
mytemplate.html:
<template "mytemplate">
<span>{{pubSettings.about_info}}</span>
<span>{{pubSettings.version}}</span>
</template>
You also may address the config values by a dotted string argument. So the next example shows equal options
mytemplate.html:
<template "mytemplate">
<span>{{pubSettings.about_info}}</span>
<span>{{pubSettings 'about_info'}}</span>
</template>
You may also address deeper elements as normal objects. Let's imaging you have the following settings.json
{
"public": {
"application": {
"version": "1.0",
"author": {
name: "My Name",
email: "mail-address"
}
}
}
}
then you can get those element values in your templates by
<template "mytemplate">
{{#if pubSettings.application.author}}
<span>{{pubSettings.application.author.name}}</span>
<span>{{pubSettings 'application.author.email'}}</span>
{{/if}}
</template>
For a more sophiticated usage, you even may pass another expression to get the name of the config value to show.
The following example will return either the value for about_info
or version
whatever the bool expression of foo is:
mytemplate.html:
<template "mytemplate">
<span>{{pubSettings what_to_show}}</span>
</template>
Template.mytemplate.helpers({
what_to_show: function() {
return (foo) ? "version" : "about_info"
}
});
If you are looking for an easy and highly flexible configuration management based on the NODE_ENV environment, you should have a look at the 4commerce:env-settings
package.
See: https://github.com/4commerce-technologies-AG/meteor-package-env-settings
In case of support or error please report your issue request. The issue tracker is available at: https://github.com/4commerce-technologies-AG/meteor-package-pubsettings-template-helper/issues
Author: Tom Freudenberg, 4commerce technologies AG
Copyright (c) 2015 Tom Freudenberg, 4commerce technologies AG, released under the MIT license