angular操作dom节点需类型转换

问题背景

使用angular发送邮件,其中有个表单是上传附件,这个是异步传递的数据,因此希望发送成功之后清空数据,因此就要单独对file表单做处理,然后做了如下代码document.getElementById('fileWidget').value='',由于我的代码一直处于热编译状态,没有报错,代码能够正常启动,最后提交代码之后同事启动,报编译错误;

原因分析

webpack正常启动之后只会做局部编译,只会判断语法是否正确,不会做类型检查,而在启动webpack的时候会做类型检查,提前发现问题,这样就导致同事启动angular报错

解决办法

var fileObj = (<HTMLInputElement>document.getElementById('fileWidget'));
fileObj.value = '';

问题总结

  1. angular操作DOM节点,要做类型转换HTMLInputElement,不然webpack编译不过
  2. 为了保证自己的代码无误,在提交代码之前先重启一下webpack,防止欺骗编译器
阅读更多

没有更多推荐了,返回首页