2016-07-29 6 views
0

То, что я пытаюсь сделать, это создать форму с метеор-автоформой, которая перенаправит пользователя на вновь сгенерированный маршрут на submit. Мой мыслительный процесс заключается в том, что я могу взять сообщения _id и использовать его для параметра iron: router. То, что я до сих пор выглядит, как следует:Проблемы с динамической маршрутизацией с использованием метеорного автоформата и железа: маршрутизатор

Создание формы

Submits = new Meteor.Collection('Submits'); 

Submits.allow({ 
    insert: function(username, doc){ 
    return !!username; 
    } 
}); 

SubmitSchema = new SimpleSchema({ 
    title: { 
    type: String, 
    label: "Title" 
    }, 
    subject:{ 
    type: String, 
    label: "Subject" 
    }, 
    summary:{ 
    type: String, 
    label: "Summary" 
    }, 
    author:{ 
    type: String, 
    label: "Author", 
    autoValue: function() { 
     return this.userId 
    }, 
    autoform: { 
    type: "hidden" 
    } 
}, 
    createdAt: { 
    type: Date, 
    label: "Created At", 
    autoValue: function(){ 
     return new Date() 
    }, 
    autoform: { 
     type: "hidden" 
    } 
    } 
}); 

Submits.attachSchema(SubmitSchema); 

Routing

Router.route('/submit', { 
    layoutTemplate: 'submitLayout', 
    waitOn: function() { return Meteor.subscribe("Submits"); }, 
    loadingTemplate: 'loading' 
}); 

Router.route('/submit/:_id', { 
    name: 'formDisplay', 
    data: function() { 
    return Submits.findOne({this.params._id}); 
    } 
}); 

И тогда я просто средний публиковать и найти вызовы. Мои проблемы: я не уверен, как выполнить перенаправление на submit, и я не уверен, как отображать результаты формы на вновь созданном маршруте.

Любая помощь будет оценена по достоинству.

ответ

0

Я смог сделать это, добавив autoform.hook и немного изменив свою маршрутизацию.

Автоформа крюк:

AutoForm.addHooks('insertSubmit', { 
    onSuccess: function(doc) { 
    Router.go('formDisplay',{_id: this.docId}); 
    } 
}) 

Routing:

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

Я получил эту информацию от этой должности:

Route to the new data submitted by Meteor autoform using iron router?

 Смежные вопросы

  • Нет связанных вопросов^_^