Wish you a happy day~(❁´◡`❁)

Angular应用出现[multdir error]的一种解决方案

[ 进击的程序媛 ] zoey 557次浏览 0个评论

  最近做项目的时候发现一个奇怪的现象,从某个页面通过a标签herf连接跳转到一个模块的时候,总会出现multdir错误,而再刷新一次页面就恢复正常,如果将页面地址输入一个新页签的地址栏,也不会出现multdir错误。一开始觉得是自定义指令太多导致作用域互相冲突了(该模块里自定义指令较多,还有嵌套关系),就google关于multdir错误的解决方案,基本都是说同一个元素上多个自定义指令scope会互相影响,或者是重复加载某个指令,都没能够解决我的问题。

  然后穷途末路之下开始分析出错时和正常时的网络请求,发现有一点不同,如图所示,左图是错误状况,右图是正确状况,发现左图加载了两个模块的app.min.js文件(因为是从demo模块跳转过去的)cuowu (错误)%e6%ad%a3%e7%a1%ae(正确)

  然后我灵光一现,想起来之前这个模块成型之前是放在demo里的,后来独立出来成了一个form模块,之前的代码没管,忘了删除,因此从demo模块跳转过来加载时该模块的js文件都加载了两遍导致指令重复加载,出现multdir错误。

  这里我学到了一点,就是即使是不同模块的controller、directive等等,也最好不要有相同的命名,在一个大项目中,最好制定统一的一套命名规范,比如以模块名为前缀等等,避免再次发生这种愚蠢的错误。 :arrow:


喜欢 (0)or分享 (0)