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" в вашей ссылке. Это решило мою проблему =)

Другие вопросы по тегам