我开发了一个AngularJs应用程序。此应用程序在 Google Chrome 和 Mozilla Firefox 中运行良好,但是当我在 Safari 和 IE-11 中测试此应用程序时STRONG>。它在控制台中显示错误。
就像我在许多地方使用此代码打开引导模式
$modal.open({
templateUrl: "dummyTemplate.html",
controller: "DummyControllerName",
controllerAs: "vm",
windowClass: 'popupModal',
size: 'sm',
resolve: {
dummyData: function(){ return object; }
}
}).result.then(data => {
});
其他代码段
$rootScope.$on("toastIt", (e, d) => { // <- It show error on this line in IE and Safari
toaster.pop(d.type || 'success', d.title, d.text);
});
我知道这个问题的原因仅仅是因为EcmaScript支持。 Internet Explorer和Firefox不支持此功能。
任何人都可以建议我解决此问题的最佳方法是什么,并在Safari和IE中启用我的AngularJs应用程序的支持。
如果我选择修改代码格式的选项,那么有很多地方,这需要花费太多时间。还有其他更好的选择来解决它吗?
答案 0 :(得分:2)
听起来你说你得到了一个错误,因为你在IE11中使用了箭头功能。事实上,IE11不支持箭头功能或ES2015及更高版本的各种其他部分。 (过去几个月中任何版本的Firefox 都。)
解决方案是使用转换器(例如Babel)将ES2015 +代码转换为ES5代码。您可以在构建步骤中执行此操作,并部署已转换的ES5兼容代码。
或者,当然,只使用目标浏览器支持的功能(例如,如果定位IE11,请不要使用箭头功能)。
答案 1 :(得分:0)
你的解析线缺少关闭} - 你有这个(删除的东西不相关):
$modal.open({
...
resolve: {
smudgedOut: function(){ return response.data
}
})
应该是:
$modal.open({
...
resolve: {
smudgedOut: function() { return response.data; }
}
})
至少,根据您在chrome dev工具中向我们展示的内容,这就是问题所在。