параметры запроса для нескольких утоплений в приложении ember-cli

у меня три модели

страна, город, торговый центр

Маршрут будет выглядеть

export default Ember.Route.extend({
 model: (params) ->
   Ember.RSVP.hash country: @store.find('country', params);
});

Шаблон будет выглядеть так

{{view "select" 
  class="btn btn-default dropdown-toggle"
  content=model.country
  optionLabelPath="content.name"
  optionValuePath="content.id"
  value=selectedCountry
  prompt="Country"
  }}
  {{view "select" 
  class="btn btn-default dropdown-toggle"
  content=currentCities
  optionLabelPath="content.name"
  optionValuePath="content.id"
  value=selectedCity
  prompt=City
  }} 
  {{view "select" 
  class="btn btn-default dropdown-toggle"
  content=currentMalls
  optionLabelPath="content.name"
  optionValuePath="content.id"
  value=value
  prompt=Mall
  }}

Выпадающий список города и торгового центра генерируется динамически в зависимости от выбора страны и города соответственно.

В моем контроллере у меня есть

export default Ember.ObjectController.extend({
 queryParams: ['selectedCountry', 'selectedCity']
 selectedCountry: null,
 seletedCity: null,
 currentCities: null,
 currentMalls: null,

selectedCountryChanged: function() {
  this.set('currentCities', this.store.find('city');    
}.observes('selectedCountry')
selectedCityChanged: function() {
this.set('currentMalls', this.store.find('mall'));    
}.observes('selectedCity')
});

параметр запроса работает правильно для первого раскрывающегося списка, но я не получаю правильное значение для второго раскрывающегося списка, предположим, что я выбираю страну как Соединенные Штаты, вызываемый ресурс

res/v1.0/страны/США

когда я выбираю город, ресурс выглядит так

res/v1.0/страны/США/города/Чикаго

когда я копирую URL-адрес с этими выбранными значениями.. параметр запроса

selectedCountry=unitedstates&selectedCity=undefined

не могли бы вы предложить мне решение для вышеуказанного. По сути, город также должен загружаться до того, как я назначу ему параметр запроса ... но загрузка города будет зависеть от параметра запроса страны.


person Sameeksha Chilukuri    schedule 07.09.2015    source источник
comment
Пожалуйста, опубликуйте больше информации о проблеме: как именно выглядит ваш шаблон (все 3 выбора), как это все работает сейчас и как это должно работать.   -  person Gennady Dogaev    schedule 07.09.2015
comment
Что такое утонуть?   -  person    schedule 07.09.2015
comment
@torazaburo это выпадающий список (‹выберите /›), я думаю   -  person Gennady Dogaev    schedule 07.09.2015
comment
Спасибо за ваш ответ. Я добавил, как будет выглядеть шаблон   -  person Sameeksha Chilukuri    schedule 08.09.2015


Ответы (1)


Я получил это, просто изменив ваши выражения store.find и приняв простой API.

маршрут:

model: function () {
  return this.store.find('country');
  // call looks like: api/countries
}

контроллер:

 selectedCountry: null,
 selectedCity: null, 
 selectedMall: null,

 currentCities: null,
 currentMalls: null,

 getCities: Ember.observer('selectedCountry',function(){
    var params = {country: this.get('selectedCountry')};
    this.set('currentCities', this.store.findQuery('city',params));
        // call looks like: api/cities?country=US
 }),
 getMalls: Ember.observer('selectedCity',function(){
    var params = {country: this.get('selectedCountry'), city: this.get('selectedCity')};
    this.set('currentMalls', this.store.findQuery('mall',params));
        // call looks like: api/malls?country=US&city=LA
 }),

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

person cheralyn    schedule 17.09.2015