Reputation: 55263
For example I have something like this:
post_form.js:
Template.postForm.events({
"input #input-content": function() {
var words, wordsNumber;
Posts.update(this._id, {
$set: {
content: $("#input-content").html()
}
});
words = $("#input-content > p").map(function() {
$.text(this);
}).get().join(" ");
wordsNumber = words.trim().split(" ").length;
$(".post-words-number").html(wordsNumber);
}
});
post_list.js:
Template.postList.events({
"click .open-post": function() {
var words, wordsNumber;
if (this.content) {
$("#input-content").html(this.content);
} else {
$("#input-content").html("");
}
words = $("#input-content > p").map(function() {
return $.text(this);
}).get().join(" ");
wordsNumber = words.trim().split(" ").length;
return $(".post-words-number").html(wordsNumber);
}
});
As you can see this:
words = $("#input-content > p").map(function() {
return $.text(this);
}).get().join(" ");
wordsNumber = words.trim().split(" ").length;
return $(".post-words-number").html(wordsNumber);
is repeated twice. How to I create a helper for that piece of code so I can reuse it in those two templates? Where should I place it?
Upvotes: 0
Views: 39
Reputation: 19544
Wherever you want to! As long as it's on the client side, of course. Files do see each other, so a piece of code written in one file can be accessed from any other.
So, for example:
/client/app.js
App = {};
App.doSomething = function(template) {
...
};
/client/views/post_list.js
Template.post_list.events({
'click .clickable': function(e, t) {
App.doSomething(t);
...
},
});
Upvotes: 1