问题描述
以下代码可在所有其他浏览器中使用,但IE中的IE11除外,它会引发以下错误,例如“ ERROR TypeError:参数不可选”,并且正在Angular 10中开发项目。
private togglePageClass(mode: boolean) {
if (mode) {
document.getElementById('templateHolder')['classList'].add(...this.pageClass);
} else {
document.getElementById('templateHolder')['classList'].remove(...this.pageClass);
}
}
并且页面类值设置如下
let Mode: string = this.pageLayout['settings']['mode'].split('-')[1];
if (this.pageLayout['template'] === 'landing_page') {
this.pageClass = [this.pageLayout['settings']['id'],'page-landing'];
} else if (this.getConfig('configSettings')['100'] === 'on') {
if (this.pageLayout['settings']['mode'] === 'abc') {
this.pageClass = [this.pageLayout['settings']['id'],'page-' + this.pageLayout['template'],Mode,'a'];
} else if (this.pageLayout['settings']['mode'] === 'xyz') {
this.pageClass = [this.pageLayout['settings']['id'],'b'];
} else {
this.pageClass = [this.pageLayout['settings']['id'],Mode];
}
} else {
this.pageClass = [this.pageLayout['settings']['id'],Mode];
}
并且我已经按照angular.io准则对angular json和相关文件进行了所有必要的更改,以使能够在ie 11中运行应用程序
解决方法
在IE11中,我也遇到了角材料中md-checkbox的问题。我通过执行以下更改来解决此问题。 这来自 document.createTreeWalker(element,NodeFilter.SHOW_TEXT,null)此方法,我添加了 false 作为第四个参数,已修复了我的错误。