2015-12-01 6 views
1

Я пытаюсь передать переменную, определенную в моем локальном помощнике шаблона, в контроллер шаблона (поэтому я могу отправить его с формой и вставить ее в Коллекция). Не могу понять, как включить эту переменную в область действия контроллера.Метеор: обмен/передача переменных между контроллером и помощником (файлы с ошибками)

Это мой помощник (дифф файл с контроллера, так как я использую структуру метеора шаблонный файл):

Template.addvenue.rendered = function() { 

// Call Multiselector 
$('#cuisineType').multiselect({ 
    onDropdownHide: function() { 
     var cuisineTypeEvent = $('.multiselect-container.dropdown-menu > .active').find('input[type="checkbox"]').map(function() { return this.value;}); 
    } 
}); 

Что мне нужно, чтобы перейти к контроллеру, «cuisineTypeEvent» (возвращает массив strings ['french', 'american']), поэтому я могу вставить его в коллекцию. контроллер (часть, где мне нужно передать массив (вместо cuisineType):

var params = { 
venueAttributes: { 
      venueType: venueType, 
      cuisineType: cuisineType, 
      } 

Я смотрел на создание другого помощника в том же файле, но я нашел только примеры, когда я делаю что с переменной определена вне Template.xx.rendered один. шахта должна оставаться в нем, как она создается с помощью выпадающего списка.

Спасибо! Dan.

ответ

3

Вы можете использовать Meteor Sessions для этого.

Session.set("sessionName",value); 

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

var data = Session.get("sessionName"); 
+0

Спасибо Вам! Я попытался использовать это, но не могу сохранить массив в значении сеанса (работает с простой строкой). Это мой код (консольное ведение журнала только для проверки, прежде чем пытаться получить его с контроллера): 'onDropdownHide: function() { \t \t \t var cuisineTypeHelper = $ ('. Multiselect-container.dropdown-menu> .active') .find (. 'ввода [тип = "флажок"]') отображение (функция() \t \t \t \t \t \t \t \t \t \t {вернуть this.value; \t \t \t \t \t \t \t \t \t \t \t}); \t \t \t \t \t \t Session.set ('cuisineTypeHelp', cuisineTypeHelper); \t \t \t var test = Session.get ('cuisineTypeHelp'); \t \t \t console.log (test); \t \t} ' Я получаю не могу прочитать prop 'ownerDocument' – Dan

+0

попробуйте консоль log cuisineTypeHelper перед сеансом. – Abhijith

+0

консольный журнал перед выводом правильного массива ...: '[" french "," modern "," chinese ", prevObject: jQuery.fn.init [3], context: document]' – Dan