2016-06-19 3 views
0

Я использую Iron: Router и у меня есть следующее событие в моем шаблоне.Meteor - Передача данных в шаблон

Если функция Guests.update успешно выполнена, я хочу перенаправить на шаблон thanks с заданными свойствами.

Как я могу получить success в моем шаблоне thanks, чтобы использовать его там?

Template.guest.events({ 
    'submit form': function(event, template){ 
    event.preventDefault(); 
    var foo = $('[name=foo]').val(); 
    Guests.update(this._id, { 
     $set: { 
     foo: foo, 
     } 
    }, function(error, result){ 
     if (error) { 
     console.log(error); 
     } else { 
     Router.go('thanks', { success:true, id: this._id } }); 
     } 
    }); 
    } 
}); 

ответ

0

Добавить параметры вашего определения маршрута:

Router.route('/thanks/:success/:_id', function() { 
    let success = this.params.success; 
    let _id = this.params._id; 
    ... 
}); 
+0

Хорошо, я думал, что есть способ без Params в URL ... – larz

+0

Вы можете сделать это с помощью переменной сеанса, а также. 'Session.set ('myObject', {success: true, id: this._id})', а затем '.get()' it из вашего шаблона. Вам решать. –

+0

Использование переменных сеанса не рекомендуется (глобальная область действия, без пространств имен), если это абсолютно необходимо. Параметры маршрута рекомендуются. Использование переменных сеанса не позволяет восстановить состояние, если URL-адрес используется как ссылка. –

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