2015-11-26 4 views
2

Я построил страницу с 3-х элементов, каждый из которых выглядит следующим образом:meteor.js - передача Идентификатор элемента щелкнул к коллекции

<div class="col-md-4 event-type"> 
<a href="{{ pathFor 'step2' }}" id="eventchoice" name="eventchoice" value="corporate"> 
</a> 
</div> 

Я пытаюсь передать значение или имя или идентификатор элемента в <a> к коллекции, используя следующий код:

EventsController.events({ 
    'click #eventchoice' : function(event) { 
     console.log(event.target.getAttribute("id")); 
     console.log(event.target.getAttribute("name")); 
     console.log(event.target.getAttribute("value")); 

     var eventchoice = event.target.value; 
     var params = { 
      eventchoice: eventchoice 
     } 

     //Insert Event 
     Meteor.call('addEvent', params); 
     FlashMessages.sendSuccess('Event Added'); 
    } 
}); 

Я добавил console.log, чтобы увидеть, если я могу получить идентификатор/имя/значение <a> элемента, но консоль выводит ' null "для всех этих. Поэтому нет ничего, чтобы перейти к коллекции в методе eventAdd.

Я не верю, что проблема связана с EventController, методом addEvent или с коллекцией событий. Любые идеи, как я могу передать эти ценности?

Благодарим за помощь!

ответ

1

Я думаю, что, должно быть, что-то не так с вашим контроллером, потому что, если вы проверите Meteorpad here, все будет хорошо. Хотя вы можете использовать класс вместо id, если у вас много похожих элементов.

+1

На самом деле проблема заключалась в том, что по какой-то причине селектор нацеливался на дочерний элемент (то есть , содержащийся в ), поэтому я исправил это, используя event.target.alt. Я просто исключил это из кода выше для простоты. Тем не менее, вы правы, что проблема с контроллером также была исправлена. Ура! – Sekoul

-1

Существует несколько способов решения вашей проблемы, но я считаю, что «Метеорный путь» - это использовать отдельный шаблон для каждого выбора (или просто использовать цикл #each), если вы сделаете так, что ваш «этот» внутри код события будет содержать значения, необходимые в вашей области действия, поэтому вам не придется полагаться на event.target для них.