我有一些动态生成的html - 我无法直接修改它。
在这个html中是一个<input class="MyInputClass">
,其中指定了类(没有id)和许多其他的atrributes。我想处理这个输入(它的文本),以便当写入此输入时,它会执行某些操作(比方说:将自己写入控制台)。
如果我在html中有权访问这个,我会这样做:
<input type="text" class="form-control (input)="onSearchChange($event.target.value)">
public onSearchChange(searchValue : string ) {
console.log(searchValue);
}
来源:Angular 2 change event on every keypress
是否可以注入这样的处理程序?
答案 0 :(得分:1)
不,你不能。
写作时
<input type="text" (input)="doSomething()" />
你实际上并没有告诉
我希望此输入能够在输入事件
上创建一些内容
但你确实告诉
我希望Angular创建一个事件处理程序,它将在输入事件上创建一些东西。
这意味着,动态生成的HTML不具备任何Angular功能的能力。
但是,您可以做的是,在ngOnInit
函数中创建窗口函数的组件中,您将在ngOnDestroy
函数中销毁。
像这样的东西
ngOnInit() {
window['onXXXInput'] = (value) => {
/* do something */
}
}
ngOnDestroy() {
delete(window['onXXXInput']);
}
现在在动态生成的HTML中;你可以简单地做到
<input type="text" oninput="window.onXXXInput(this.value)" />