密钥捕获指令在Angularjs中没有按预期工作

时间:2014-03-24 20:31:17

标签: angularjs

我正试图在我的角度应用程序中捕获按键事件。 预期的功能是按下g1(即同时按下g和1),应用程序应转换到state1。按下g2后,应用程序应转换为state2,依此类推。

然而,应用程序似乎并没有同时捕获两个按键。我在这里错过了什么? 这也是实现这一目标的最佳方式,或者是否有更好的解决方案。

你可以在这里看到plnkr http://plnkr.co/edit/sK0NYNDRtH4lFfteNd5O

2 个答案:

答案 0 :(得分:0)

Javascript是单线程的,因此以下if语句无法运行true块:

if (x == 3 && x == 4) {
    // true
} else {
    // false
}

除此之外,您面临的真正问题是(据我所知)浏览器不直接将翻转扫描代码暴露给Javascript。当浏览器获得击键时,它们已经被去卷(如果这是一个单词)。

BTW,样式注释:最好在Stack Overflow上发布你的代码,以便为后人保存,以供其他读者学习。添加一个plunkr是一个很好的礼貌,但它是次要的。

答案 1 :(得分:0)

您可以将e.codeValue传递给服务/控制器,然后将按下的键存储在数组中。

按下按键,告诉服务/控制器将其从“按下的键”阵列中删除。

在服务/控制器中,您可以使用逻辑来查看g和1是否在数组中 - 如果是,则执行状态转换。如果这是最好的方式,那可能会有效,但不是100%。试一试,让我们知道它是否适合您。

相关问题