У меня есть несколько путей, которые выглядят следующим образом в моем приложении, все под палитрой.путь панировки: извлекать данные для всего, что находится под дорогой
/class/:slug
/class/:slug/student/:_id
/class/:slug/teacher/:_id
Однако это, как правило, приводит к избыточности, потому что приходится постоянно искать класс по слизняк, прежде чем запрашивая
this.route('Class.teacher', {
path: '/class/:slug/teacher/:_id',
waitOn: function() {
return Meteor.subscribe('teachers');
},
data: function() {
var classId = Classes.findOne({ slug: this.params.slug })._id;
if(!classId) {
throw new Meteor.Error(404, 'That class does not exist');
}
return Teacher.findOne(
{ _id: this.params._id, classIds: classId }
);
}
})
Проблема количество избыточности это, как представляется, индуцируют, как я начала большинство моих маршрутов с поиском класса.
Есть ли способ выполнить какие-то манипуляции на маршруте /class/:slug
? Я подумал примерно так:
Router.route('/class/:slug/*', {
waitOn: function() {
return Meteor.subscribe('classes', this.params.slug);
},
onBeforeAction: function() {
var class = Classes.findOne(this.params.slug);
if(!class) {
throw new Meteor.Error(404, "Class not found");
this.stop();
}
this.next();
}
});
Однако это не работает. Каким образом можно правильно обрабатывать пути для сухарей?