2014-10-07 1 views
0

Я видел this thread о том, как добавлять/изменять параметры запроса без дублирования, но я не могу заставить его работать.Как установить параметры запроса или параметры динамически с помощью железа-маршрутизатора?

У меня есть страница в моем приложении Meteor, в которой перечислены элементы и разрешена фильтрация. Я хочу, чтобы фильтрация была основана на URL-адресах, поэтому каждое изменение фильтра должно отражать URL-адрес. Я использую железо-маршрутизатор, чтобы потом обновить подписку.

По какой-то причине я не могу изменить запрос. Этот код не вызывает каких-либо действий, если вызывается из Template.templateName.events(...):

# valuePairs = ["foo=bar", "bar=foo"]  
newUrl = Router.current().route.path {}, { query: valuePairs.join('&') } 
Router.go newUrl 

Но если я называю Router.go(newUrl) из командной строки, ожидаемый результат происходит, то есть обновления URL.

Есть ли другой предпочтительный метод для изменения запроса?

Если нет, то как я могу сделать над кодом работу?

UPDATE - Я только что нашел, что после запуска события, если я вернусь в историю браузера, я могу увидеть правильный URL. Похоже, что-то (?) Запускает загрузку другой страницы, чтобы вернуться к исходной странице.

ответ

0

Только на основе

если я вернусь в моей истории браузера я вижу правильный URL

ли вы подавляете фактическое событие ссылки? <a href='#'> перевернет вас обратно.

Template.tempyTheTemplate.events({ 
    'click awesomeButton': function() { 
     // URL stuff 
     Router.go(magicURL); 
     return false; // <-- suppresses the event 
    } 
}); 
+0

О, я совершенно забыл об этом вопросе. То же, что вы предложили здесь, было разрешено на [GitHub] (https://github.com/iron-meteor/iron-router/issues/900#issuecomment-59673360), когда у меня все еще была проблема. Благодарю вас. И я (лично) нахожу 'event.preventDefault()' более читаемым/очевидным, но это только предпочтения. –