2015-04-27 8 views
7

Uso Meteor con AutoForm & Iron Router.Rotta verso i nuovi dati inviati da Meteor autoform usando un ferro da stiro?

Ho una compilazione automatica per l'inserimento di dati e desidero reindirizzare alla pagina dei dati che ho aggiunto dopo un inserimento riuscito. Come dovrei farlo?

Ecco il Per:

{{#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}} 

Ferro Router:

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

richiamate/Ganci

AutoForm.hooks({ 
    add: { 
    onSuccess: function(doc) { 
     Router.go('page', ???); 
    } 
    } 
}); 
+0

http: // StackOverflow .com/domande/26 851878/meteor-ironrouter-passing-multiple-properties-on-router-go –

risposta

6

Il gancio Maschera lo restituisca il DocID. Vedi: https://github.com/aldeed/meteor-autoform#callbackshooks

this.docId: L'attributo _id del documento allegato al modulo, se esiste, o per un tipo = 'inserto' forma, la _id doc appena inserita, se uno è stato inserito.

in modo da utilizzare:

Router.go('page',{_id: this.docId}); 
0

Secondo il doc su GitHub, firme cambiati: non dimenticare di dichiarare le forme o nulli per applicare i ganci.

per tutte le forme

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

per forma specifica

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

migliore è quello di verificare la data fino a firme: https://github.com/aldeed/meteor-autoform#callbackshooks

0
onSuccess: function(formType, result) { 
    Router.go(
     ['adminDashboard', result, 'Edit'].join(''), 
     {_id: this.docId} 
    ); 
}, 
+1

Sebbene questo snippet di codice possa essere la soluzione, [inclusa una spiegazione] (// meta.stackexchange.com/questions/114762/explaining-entely- Risposte basate sul codice) aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro, e queste persone potrebbero non conoscere le ragioni del tuo suggerimento sul codice. – xskxzr