AngularJS 1.8.0和Jquery 3.6.0的兼容性问题



我有一个java web项目应用程序,使用Angular 1.8.0和JQuery 1.12.2。它运行良好。尽管Angular 1.8.0应该维护JQuery 3.6.0,但当我将JQuery更新到3.6.0时;命令栏";指令未显示:

...
<div ng-if="home.showGrid" class="container-fluid ms-font-m">
<command-bar/>
<!-- the next part is not shown -->
<div id="homeGrid" ui-grid="home.gridOptions" ui-grid-save-state ui-grid-auto-resize ui-grid-edit ui-grid-selection ui-grid-pinning ui-grid-resize-columns ui-grid-pagination class="grid"></div>
</div>
...

如果我将div与";homeGrid";id在"之前;命令栏";然后显示出来。

此外,我还试图创建新的AngularJs指令<div>你好<div>quot;只有一个空控制器,用它替换了命令栏,它也没有显示。

如果我试图强迫Angular在ng-jq中使用JQlite,那就更糟了,模板完全崩溃了,而且资产文件夹中还有第三方组件需要JQuery。

请告诉我什么是解决方案,我需要采取什么步骤才能找到问题的根源?

终于发现了问题。在我看来,Angular没有正确识别标签的缩写形式。在我改变了"<命令栏/>quot;至"<命令栏>lt/命令栏>quot;一切顺利。

请参阅Angularjs文档:https://docs.angularjs.org/guide/migration#migrating-从1-7到1-8

JqLite不再在不处于XHTML模式时将类似XHTML的字符串转换为同级元素:。相反,它会让元素独处。在非XHTML模式下,浏览器会将这些元素转换为嵌套元素:。

angular.UNSAFE_restoreLegacyJqLiteXHTMLReplacement();

或JQuery:https://jquery.com/upgrade-guide/3.5/

jQuery.migrateEnablePatches("自封闭标记"(;

最新更新