就是这么简单。我目前在我的模板中有事件,但它并没有起作用:
'keyup': function(event) {
event.preventDefault();
console.log("KEYUP");
}
更新:看来这是框架中的通用错误。如果有人能分享我可以使用的手动修复方法而不涉及使用他人的软件包,我将不胜感激。
更新2:我已经解决了这个问题,如下所示。
就是这么简单。我目前在我的模板中有事件,但它并没有起作用:
'keyup': function(event) {
event.preventDefault();
console.log("KEYUP");
}
更新:看来这是框架中的通用错误。如果有人能分享我可以使用的手动修复方法而不涉及使用他人的软件包,我将不胜感激。
更新2:我已经解决了这个问题,如下所示。
很遗憾,Meteor(源代码)存在一个错误,即事件不会在UI.body.template
上触发。您可以使用meteor-body-events包来修复这个问题,并在整个文档上附加keyup
事件。
突然间我的原始代码可以正常运行了。可能Meteor的工程师已经修复了这个问题,太棒了!
以下是在0.9.3.1版本中对我有效的代码:
Template.template_name_here.events({
'keyup': function(event) {
event.preventDefault();
console.log("KEYUP");
}
});
Template.template_name_here.events({
'keyup, click': function(event) {
event.preventDefault();
console.log("KEYUP OR CLICK");
}
});
目前Meteor正在正确处理<body>
事件,除非您使用的是接管模板渲染的渲染器。一个例子是Kadira:blaze-templates,它将覆盖默认的Meteor模板渲染(用于FlowRouter),或者Iron Router。
幸运的是,有一个简单的包gwendall:body-events可以恢复此功能。