Meteor.js: Как выполнить действие по ссылке на скачивание CollectionFS
Здравствуйте, у меня есть шаблон, где у меня есть ссылка для загрузки загруженных изображений:
{{#each uploads}}
<ul class="list-group">
<li class="list-group-item">{{original.name}} <a href="{{url download=true}}" class="btn btn-primary downloadUpload" data-uploadid="{{_id}}">Download</a></li>
</ul>
{{/each}}
Ссылка работает нормально, однако сегодня я хотел выполнить некоторые действия после нажатия кнопки, например:
Template.practicalQuestionTake.events
'click .downloadUpload': (e, template) ->
console.log @
Но после добавления этого обработчика событий после того, как я щелкну ссылку для скачивания, я могу загрузить файл, однако разрыв страницы (пустая страница), проверяя журналы в консоли, показывает ошибку:
"TypeError: router.route is undefined"
Тогда я попытался вернуть истину:
Template.practicalQuestionTake.events
'click .downloadUpload': (e, template) ->
console.log @
true
Но тот же результат, то я попытался использовать protectDefault
Template.practicalQuestionTake.events
'click .downloadUpload': (e, template) ->
e.preventDefault()
console.log @
И теперь что-то происходит, я не могу загрузить файл, и кажется, что ничего не происходит.
Как я могу выполнить некоторые действия в обработчике события по ссылке для скачивания CollectionFS?
1 ответ
Привет! Я провел много исследований, а затем обнаружил, что проблема связана с железным маршрутизатором, по какой-то причине, когда у вас есть ссылка, которая указывает на внешний URL-адрес, все ваши подписки и контексты данных теряются, поэтому вы получаете 404 не найден страница или "Ошибка типа: router.route не определен"
Это проблема. Решение этой проблемы: всякий раз, когда у вас есть ссылка для скачивания (Amazon S3, dropbox, CollectionFS и т. Д.), Используйте target="_blank"
в вашей ссылке. Это решило мою проблему =)