8

I'm using Meteor with AutoForm & Iron Router.

I have an autoform for inserting a data, and I want to redirect to the page of the data I added after a successful insert. How should I do it?

Here is the For:

{{#autoForm collection="Products" id="add" type="insert"}}
    <h4 class="ui dividing header">Products Information</h4>
      {{> afQuickField name='name'}}
      {{> afQuickField name='info'}}
    <button type="submit" class="ui button">Insert</button>
{{/autoForm}}

Iron Router:

Router.route('/products/:_id', {
  name: 'page',
  data: function() { return Products.findOne(this.params._id);}
});

Callbacks/Hooks

AutoForm.hooks({
  add: {
    onSuccess: function(doc) {
      Router.go('page', ???);
    }
  }
});
user1909176
  • 115
  • 6

3 Answers3

6

The AutoForm hook will return you the docId. See: https://github.com/aldeed/meteor-autoform#callbackshooks

this.docId: The _id attribute of the doc attached to the form, if there is one, or for an type='insert' form, the _id of the newly inserted doc, if one has been inserted.

So use:

Router.go('page',{_id: this.docId});
Mark Leiber
  • 3,118
  • 2
  • 13
  • 22
0

According to the doc on github, signatures changed: don't forget to declare the forms or null to apply the hooks.

for all forms

AutoForm.addHooks(null,{
    onSuccess: function(formType, result) {
        Router.go('page',{_id: this.docId});
    }
});

for specific form

AutoForm.addHooks(['yourForm'],{
    onSuccess: function(formType, result) {
        Router.go('page',{_id: this.docId});
    }
});

Best is to check the up to date signatures: https://github.com/aldeed/meteor-autoform#callbackshooks

Tabascow
  • 71
  • 7
0
onSuccess: function(formType, result) {
    Router.go(
        ['adminDashboard', result, 'Edit'].join(''), 
        {_id: this.docId}
    );
},
user3137865
  • 51
  • 1
  • 3
  • 1
    While this code snippet may be the solution, [including an explanation](//meta.stackexchange.com/questions/114762/explaining-entirely-‌​code-based-answers) really helps to improve the quality of your post. Remember that you are answering the question for readers in the future, and those people might not know the reasons for your code suggestion. – xskxzr Feb 03 '18 at 06:55