【发布时间】:2025-12-09 13:50:01
【问题描述】:
有没有办法在键盘上按下一个键时安排一个事件。我似乎在事件触发器中找不到。
【问题讨论】:
标签: palantir-foundry foundry-slate
有没有办法在键盘上按下一个键时安排一个事件。我似乎在事件触发器中找不到。
【问题讨论】:
标签: palantir-foundry foundry-slate
对此有两种可能的答案。
第一个是 slate 只是 javascript,带有沙盒层(用于安全性和功能性),因此在某种程度上,如果您知道 dom 元素 ID 可以尝试使用类似于以下内容的方式访问它:https://developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event#examples
const log = document.getElementById('log');
document.addEventListener('keypress', logKey);
function logKey(e) {
log.textContent += ` ${e.code}`;
}
由于沙盒层,这可能无法实现,具体取决于您要实现的目标。如果您想在本地执行此操作,那么使用 slate 有效设计应用程序的诀窍是认为,每当变量更改时,整个世界都会被重新计算。与 Angular.js 上的生命周期刷新类似
在 slate 中没有针对按键的本地全局事件,因此,如果您想侦听任何对文档冒泡的按键,那将无法正常工作。但是对于大多数用例,您可以解决它。例如,通过从输入设置变量,然后从其他地方读取它。
1 - 转到变量选项卡并创建一个新变量。
2 - 创建一个输入框。
3 - 将变量设置为在每次变量更改时更新。
4 - 从某个小部件或函数中读取变量。
【讨论】: