我经常使用RxJS的fromEvent
方法。老实说,我期待Angular有所帮助,但显然没有。使用fromEvent
时如何防止XSS攻击?
代码示例:
<input #myInput />
fromEvent(this.muInput.nativeElement, 'input').pipe(
tap(inputEvent => this.saveToDatabase(inputEvent.data)
)
对于您的问题,使用fromEvent
,您以被动形式获得与valueChanges
相同的输出,就安全措施而言,它几乎是相同的。
<input formcontrol="myInput"/>
myInput.valueChanges.subscribe(console.log)
vs
<input #myInput />
fromEvent(this.muInput.nativeElement, 'input').subscribe(console.log)
如果在视图中将它们用表达式大括号括起来,Angular将清除输出
{{ .. }}
但是它不会清理表单输入,因此这仍然是有效的表单输入,并且仍然需要在服务器端进行清理。
<script>alert('kdfkf')</script>
我不建议使用fromEvent
来处理更改,因为在大多数情况下,您仅绑定一次到某个元素(应该在ngOnInit中),如果该元素通过*ngIf
从DOM中删除,则除非您有代码来处理重新绑定。