2015-05-04 1 views
0

Я работаю над приложением, в котором пользователи могут забронировать курсы, и я хочу, чтобы каждый пользователь мог только готовить курс один раз. Вот код, который я сейчас, надеюсь, что вы, ребята, мне поможет :)Только разрешая пользователю отправлять ввод один раз, MeteorJs

'click #book': function(e,tmpl){ 
    if($.inArray(Session.get('userID'), Courses.find({_id: this._id}, {fields:{attendees: 1}})) === -1){ 
    console.log('You have already booked this course'); 
    }else{ 
    Courses.update(this._id, {$push: {attendees: Session.get('userID')}}); 
    Courses.update(this._id, {$inc: {numberPlaces: -1}}); 
    console.log('You have booked the course'); 
    } 

}

Как вы можете видеть, что я Индентификационный пользователя в коллекции и проверить, если его идентификатор уже существует в там, где он пытается забронировать курс.

Спасибо!

ответ

0

Если контекст обработчика событий представляет собой курс документ, то вы можете просто сделать это:

if (_.contains(this.attendees, Meteor.userid())) 
    console.log('Already booked!'); 

В противном случае, вы можете сделать чек прямо в селекторе:

if (Courses.findOne({_id: this._id, attendees: Meteor.userid()})) 
    console.log('Already booked!'); 

Заменить Meteor.userid() с вашей переменной сеанса, если это действительно относится к другому пользователю.

+0

спасибо !! Ваши ответы действительно полезны! –

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