Calling the method
Now that we have created our insertPost
method, we can change the code in the submit event, where we inserted the post earlier in our editPost.js
file, with a call to our method:
var slug = _.slugify(form.title.value); Meteor.call('insertPost', { title: form.title.value slug: slug, description: form.description.value text: form.text.value, }, function(error, slug) { Session.set('saveButton', 'Save Post'); if(error) { return alert(error.reason); } // Here we use the (probably changed) slug from the server side method Router.go('Post', {slug: slug}); });
As we can see in the callback of the method call, we route to the newly created post using the slug
variable we received as the second argument in the callback. This ensures that if the slug
variable is modified on the server side, we use the modified version to route to the post. Additionally, we reset the saveButton
session variable to change the text to Save Post...