How can I reference a template helper from another one? For example...
Template.XXX.helpers({
reusableHelper: function() {
return this.field1 * 25 / 100; //or some other result
},
anotherHelper: function() {
if (this.reusableHelper() > 300) //this does not work
return this.reusableHelper() + ' is greater than 300';
else
return this.reusableHelper() + ' is smaller than 300';
}
});
I have also tried Template.instance().__helpers.reusableHelper - all with no luck.
Alternatively is there a way to define reactive Template instance variables?
XXX is a sub-template that renders multiple times on the same page.
Adding on to Nils' answer, I have been able to access Template level helpers in events using the following code:
i had something similar -- i had 2 helpers in the same template that needed access to the same function. however, that function 1) needed access to a reactive var in the template, and 2) is a filter function, so i couldn't just pass in the data of that reactive var.
i ended up defining the filter function in the templates onCreated() and stored it in a reactive var, so the helpers could access it.
This like using of common code, you can make another javascript function which contains the your reusable code and call it from wherever you required.
Like in your code-
and in you template helper-
and
you can use Session variables or Reactive variable
this just came up again at work, and this time we used modules. in this case, we had a number of large, related functions that had to maintain data across calls. i wanted them outside the template file but not totally polluting the Meteor scope. so we made a module (polluting the Meteor scope 1x) and called the functions therein from the template.
lib/FooHelpers.js:
FooTemplate.js:
console output is 7, 8.
Since this answer is currently missing - I wanted to add an update
In the current meteor version, you should be able to call:
You should call it like this, if you want to make sure the helper has access to
this
:But be careful - this could break in future Meteor versions.
I found a better solution with collection hooks:
I then becomes functions of
this
, usable in both helpers and templates.