记第一次为开源代码报漏洞

昨天在开发webapp的时候,使用了Dcloud公司的mui框架。我在使用angularjs的时候绑定了一个文本框,在文本框内我使用mui框架定义的mui-input-clear类,它的作用是可以点击之后可以删除文本框内的信息。

bug就在这里,当我点击了这个mui-input-clear之后,文本框内的信息删除了,但是我的angularjs确没有监听到文本框内容的改变。但是我手动删除文本框内的信息却能够监听到。当时我就发现这个是一个小bug,肯定是源码里面没有照顾到这个情形。随手百度了一下,有一个人也和我一样遇到了这样的问题,他给出了原因是源码没有进行change操作。

于是我回到了源码中寻找错误点,并且理解那个错误点在哪里,源码中直接通过c.element.valaue=""来改变值,但是并没有触发这个模型的改变,于是我通过理解上下文,改了一下源码,增加了a.trigger('c.element','change',{value:c.element.value})。结果是运行成功的,修复了这个小小bug,虽在他人提点下我才发现这个问题,但是我觉得敢于专研和挑战才是一个真正的程序员。

原文地址:https://www.cnblogs.com/claireyu1219/p/5806770.html