У меня есть модель «Фильтр», и пользователь может изменить эту модель, нажав на страницу.Переход на тот же маршрут с той же моделью
Поэтому, когда пользователь вносит изменения в модель, я хочу перейти на тот же маршрут, на котором он в настоящее время включен, поскольку URL-адрес отличается в зависимости от деталей модели (я переопределил «сериализацию» на маршруте чтобы это было так).
Как сейчас обстоят дела, Эмбер, кажется, игнорирует мои просьбы о переходе на тот же маршрут с той же моделью. Модель изменена, и мой шаблон изменился, но я хочу, чтобы URL-адрес также отражал изменение фильтра.
Как это сделать?
Edit:
Вот код в моем ApplicationController
App.ApplicationController = Ember.Controller.extend
currentFilter: null
actions:
toggleRegion: (region_id) ->
region = this.store.getById('region', region_id)
filter = this.get('currentFilter')
# modify the filter
if filter.containsAtLeastOneCityOfRegion(region)
filter.disableRegion(region)
else
filter.enableRegion(region)
this.replaceRoute('listings', filter)
Теперь, это работает как задумано, когда я нахожусь в «индексной» маршрут, но если я уже в «списки» маршрут модифицируется, как предполагалось, но замена маршрута не происходит, и, следовательно, мой URL-адрес не обновляется с помощью правильных динамических сегментов (исходя из метода «serialize» от DepositRoute).
, пожалуйста, добавьте ваш код. – Pheonix
Вы используете transitionToRoute (http://emberjs.com/api/classes/Ember.Controller.html#method_transitionToRoute), передавая новую модель? –
Как видно из моего кода, я теперь использую «replaceRoute», но передаю тот же (но модифицированный) объект модели. – elsurudo