Meteor.js:如何在CollectionFS的下载链接上执行操作

时间:2015-08-06 17:44:42

标签: meteor coffeescript 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"

然后我试图返回true:

Template.practicalQuestionTake.events
    'click .downloadUpload': (e, template) ->
        console.log @
        true

但结果相同,于是我尝试使用preventDefault

Template.practicalQuestionTake.events
    'click .downloadUpload': (e, template) ->
        e.preventDefault()
        console.log @

现在发生任何事情,我无法下载文件,似乎没有任何反应。

如何在CollectionFS的下载链接的事件处理程序中执行某些操作?

1 个答案:

答案 0 :(得分:1)

您好我做了很多研究,然后发现问题是Iron路由器的问题,出于某种原因,当您有一个指向外部URL的链接时,您的所有订阅和数据上下文都将丢失,因此您获得了404找不到页面或“TypeError:router.route未定义”

This is the issue此问题的解决方案:每当您拥有下载链接(Amazon S3,Dropbox,CollectionFS等)时,请在链接中使用target="_blank"。这解决了我的问题=)