Проблемы с динамической маршрутизацией с использованием meteor-autoform и iron:router

То, что я пытаюсь сделать, это создать форму с метеор-автоформой, которая будет перенаправлять пользователя на вновь сгенерированный маршрут при отправке. Мой мыслительный процесс заключается в том, что я могу взять представленный _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 );

Маршрутизация

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});
  }
});

А то у меня просто средние звонки публикации и поиска. Мои проблемы заключаются в том, что я не знаю, как выполнить перенаправление при отправке, и я не уверен, как отображать результаты формы на вновь сгенерированном маршруте.

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


person Blezx    schedule 29.07.2016    source источник


Ответы (1)


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

Хук автоформы:

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

Маршрутизация:

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

Я получил эту информацию из этого сообщения:

Маршрут к новому данные, отправленные автоформой Meteor с использованием железного маршрутизатора?

person Blezx    schedule 30.07.2016