我构建了一个名为intellark
的指令。它在输入时将QWERTY键动态转换为阿拉伯键。效果很好。在指令中使用console.log时,会显示每个转换后的字母,并相应地对这些字母进行转换(输入英文,转换和显示阿拉伯语)。我以这种方式构建它,这样通过在任何HTML组件上添加指令名intellark
,输入键就会相应地被转换。
我的问题是这个。与下面的图像所示的指令的keyPress()
方法中的行为不同,当我将一个HTML组件添加到app.component.html
中,将其添加到指令intellark
中,双向将其绑定到app.component.ts
中的inputText
中,在键输入事件上不调用showIt()
方法。然而,它确实在按下BACKSPACE时接收到了事件!
所以,在某种程度上,有一种脱节。如何使showIt()
方法动态地侦听输入事件?
虽然我可以使用服务、EventEmitter、Subject和/或@Output等技术将输出发送到订阅组件,但我确信这不是正确的方法。
有什么想法吗?如何用非指令组件注册输入事件?下面的图片显示了我为此构建的所有内容。
发布于 2017-12-14 05:49:02
您能像下面这样做输入框吗?
<input #box (keyup)="onKey(box.value)">
因为通过在类型文件.ts文件中公开.ts文件,您将在后端代码.ts文件中公开模板,这是一种错误的做法,并利用keyup
,将输入框的值传递给您的代码onKey
事件。
https://stackoverflow.com/questions/47806566
复制相似问题