javascript - Meteor - 全局 keydown 后找到集合?

标签 javascript templates meteor

我查遍了,Meteor似乎不能同时做这两件事。

我想要的很简单:当按下任何按钮(全局)时,将调用 collection.find(...) 。它在 Template.events 中不可行,因为 Meteor 不支持全局 keydown,而且我无法在 Template.rendered 中执行此操作,因为出于某种原因,collection.find 始终不返回任何内容。

有什么想法吗?

最佳答案

以下方法有效,但需要页面中的元素具有焦点,我猜这就是您的情况的问题。

UI.body.events({
    'keydown': function(event, template){
        console.log('A key is down!')
    } 
})

我想你必须在没有 Meteor 的情况下做到这一点。以下内容应该适用于现代浏览器:

function keydownListener(event){
    console.log('A key is down!')
}

Template.templateName.created = function(){
    document.body.addEventListener('keydown', keydownListener)
}

Template.templateName.destroyed = function(){
    document.body.removeEventListener('keydown', keydownListener)
}

关于javascript - Meteor - 全局 keydown 后找到集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517449/

相关文章:

javascript - 在外部范围访问变量?

javascript - 无法访问 json 对象属性并且值在 Rails View 中显示为未定义

c++ - googletest 中的参数化和共享资源测试

c++ - 如何从 Alexandrescu A. 'Append' 编译模板类 "Modern C++ Design. Generic Programming and Design Patterns Applied"?

c++ - 为什么两阶段查找会无法选择 'swap' 的重载版本?

mongodb - 如何在我的 mongo 查询中使用 new Meteor.Collection.ObjectID() 和 meteor ?

javascript - 在类组件方法中使用功能组件

javascript - 我的图片加载得太晚了,为什么?

node.js - MongoDB的filemd5是否能够设置readPreference

javascript - Firefox 和 IE 上的 Deps.autorun 与 Meteor.user() 问题