我已经使用webpack和导入/导出语法将AngularJS应用程序转换为es6。
除this
关键字外,其他所有功能都可以正常运行。
由于webpack在编译过程中将我所有的代码都包装到了iife函数(模块)中,因此关键字this
在以下函数中未定义:
.controller( …, function() {
...
this.myFunc = function() {
someFunction().then(function(data) {
this.someVar = data;
// this === window
});
});
});
在没有捆绑的正常角度应用中,这会获得window
对象。
除了使用webpack之外,我不想进行大的更改(我在很多代码位置都具有此功能)。有什么方法可以使this
指向webpack中的window
对象?
答案 0 :(得分:2)
Webpack确实强制代码使用“严格模式”。问题来自使用ES6 public
语句。
从文档中:
静态import语句用于导入由另一个模块导出的绑定。不管您是否声明导入的模块都在strict mode中。
有关更多信息,请参见