2015-05-11 5 views
0

У меня есть форму для выбора списков в нем countryList a stateList. каждый из них имеет также коллекцию countrys и 'состояния.Метеор: Как сделать выбор по результатам предыдущего выбора

Основываясь на выбранной стране, я хочу, чтобы stateList отображали только те состояния, которые принадлежат выбранной стране.

В коллекции штатов есть полевая страна, поэтому я могу фильтровать на основе этого.

Я не могу обработать код для создания stateList ????

После нескольких часов экспериментирования и проб и ошибок я стал чем-то вроде этого:

Template.registerPartnerStep2.events({ 
'click #countryList': function (event, template) { 
    var x = myTrim($("#countryList").val()); 
    var y = (Countrys.findOne({country: x})); 
    var z = y.nr; 


}, 
'focus #stateList': function (event, template) { 

    event.preventDefault(); 
    var x = myTrim($("#countryList").val()); 
    var y = (Countrys.findOne({country: x})); 
    var z = y.nr; 
    if (typeof(this.stateSub) !== 'undefined') { 
     this.stateSub.stop(); 
    } 
    this.stateSub = Meteor.subscribe('stateList', z); 

} 
}) 

Может кто-нибудь помочь мне дальше ??

ответ

0
  1. Подпишитесь на информацию о странах по адресу onCreated.
  2. Реагировать на событие стран изменения/клика.
  3. После изменения страны подписаться на список состояний/регионов
  4. Ваш регион/регион должен реагировать, когда поступают данные, достаточно простого помощника шаблона, который запрашивает вашу локальную коллекцию.
0

EDIT для Session:

Template.registerPartnerStep2.events({ 

    'change #countryList': function() { 
     var country = myTrim($("#countryList").val()); 
     Session.set('selectedCountry', country) 
    } 

}); 


Template.registerPartnerStep2.helpers({ 

    selectedCountryStates: function() { 
     var country = Session.get('selectedCountry'); 
     return States.find({country: country}) 
    } 

}); 
+0

Как я могу сделать, что вспомогательная функция работает после смены страны ?? –

+0

Для этого вам потребуется слушатель, скажем, сеанс. Установите значение выбранной страны в качестве переменной сеанса и получите ее из вспомогательной функции. – durrrr