javascript - JQuery 更新后 ng-transclude 不再起作用
问题描述
这是我在最新的 JQuery 更新后开始遇到的一个奇怪问题。
我们在应用程序中使用 angularjs 1.7.9
。我们有以下组件。它基本上是一个日期字段包装器。
export class DateFieldComponent {
...
transclude: any = {
iconContent: "?iconContent",
};
template: string = `
<div>
<span
ng-click="$ctrl.focusInput()"
ng-transclude="iconContent"
/>
<input
...
></input>
</div>
`;
}
angular.module("App").component("dateField", new DateFieldComponent());
如您所见,我们使用 ng-transclude 将图标加载到输入字段。我们这样做是为了让任何使用这个组件的人都可以从客户端动态添加图标。
JQuery
在我们从更新3.4.0
到之前,该组件工作正常3.5.0
。更新后dateField
有问题。但是没有控制台错误。但我能够将问题指向下一行
ng-transclude="iconContent"
所以如果我删除这条线,一切正常。添加此行会使组件无法正确呈现。
我知道 JQuery 更新对 angularjs 没有影响,因为 angularjs 使用它自己的jquery-lite
版本。另外据我所知,ng-transclude
与JQuery
.
我还注意到,在这次更新之后,我们在应用程序中使用 ng-transclude 的所有地方都存在类似的问题。
我在这里想念什么?任何线索将不胜感激。
解决方案
原来我们在标记中犯了一个简单的错误,它不再适用于 JQuery 3.5.0 版本
这是罪魁祸首
<span
ng-click="$ctrl.focusInput()"
ng-transclude="iconContent"
/>
修复是span
正确关闭如下
<span
ng-click="$ctrl.focusInput()"
ng-transclude="iconContent">
<span/>
推荐阅读
- 3d - 有没有更简单的方法在 PPT 或 Visio 中创建附图?
- php - 从 PHP 处理提交 AJAX 时,下面的代码中有什么错误?
- c# - 超时后重新连接到 TCP 客户端
- bash - 将命令应用于文本文件中列的值并替换
- ruby-on-rails - Rails 中的自引用关联
- dialogflow-es - 在列表中获取更多项目的问题(Google 上的操作)
- visual-studio-code - 如何使用 Visual Studio 代码在我的笔记本电脑上显示 shopify free 它们的输出?
- javascript - 抛硬币 1000 次时,如何计算连续 8 次得到相同结果的概率是多少?
- vb.net - 我可以在日期时间选择器错误 vb.net 中获得 A3/P3 而不是 AM/PM
- javascript - 此函数中 Array() 的上下文