angular - 如果项目不是使用 Angular-CLI 创建的,则添加 Polyfill 支持
问题描述
我接管了一个不是我设计的 Angular 7 应用程序。
我有一个网页请求用户的出生日期作为字段之一,在signup.component.html文件中使用以下代码:
<input [(ngModel)]="dateOfBirth" id="DOB" name="dateOfBirth" type="date" max="9999-12-31" />
以上适用于 Windows 10 Chrome 和 Firefox(尚未有机会测试 Edge)。
但是,IE 11在调试器控制台中报告以下错误:
(X) SCRIPT438: 对象没有支持属性或方法“匹配”main-client.js (xxxxxx,yy)
我已将问题隔离到 DOB,因为如果删除了上面的 Angular 双向绑定[(ngModel)]
,则应用程序不会在 IE 11 中给出错误。
polyfill
经过研究,如果没有为 Angular 应用程序启用支持,这似乎是一个常见问题。如果使用 Angular-CLI 创建需要修改的必要文件,大多数解决方案都会描述修复。
但是,应用程序源代码有package.json
、package-lock.json
、tsconfig.json
,但没有以下文件:
angular.json
、tsconfig.app.json
、tsconfig.spec.json
或\src\polyfill.ts
我的问题是:
如何向此应用程序添加 polyfill 支持?
解决方案
要手动将 polyfills 添加到您的 Angular 项目中,只需将它们添加到index.html
文件夹根目录中的应用程序中,例如:
src/index.html
但是对于您的问题,您似乎可以这样做以支持 IE 9+
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.msMatchesSelector ||
Element.prototype.webkitMatchesSelector;
}
来自莫兹拉
推荐阅读
- python-3.x - 如何每第n行选择和设置列的值?
- php - PHP-flock() 奇怪的行为
- java - 使用Future Class模拟任务T的多线程进程
- python - 坚持使用 Python 进行 11 年级计算机科学活动
- java - 如何在 Android 中使用 FFMPEG 将视频大小压缩到所需大小?
- python - 如何在 Python 中隐藏 FFmpeg 的控制台输出?
- python - 安装后运行 pip 有问题?
- typescript - 在没有类型保护的打字稿中过滤
- javascript - 基于 data-id 的选定选项的总和值
- leaflet - Leaflet Omnivore 从 JS 变量中的文本而不是 KML 文件中添加一个图层