【发布时间】:2018-10-17 10:43:30
【问题描述】:
我正在使用 ES6、AngularJS 和 babel-loader 7.1.4、Webpack 3 制作应用程序。
在我创建服务文件之前一切正常:
这是我的服务:
'use strict';
module.exports = (ngModule) => {
ngModule.service('$ui', () => {
//#region Methods
/*
* Trigger windows resize function.
* */
this.reloadWindowSize = () => {
$(window).resize();
};
//#endregion
});
};
将源代码从 ES6 转成 ES2015 后,我的服务变成了:
module.exports = function (ngModule) {
ngModule.service('$ui', function () {
//#region Methods
/*
* Trigger windows resize function.
* */
_this.reloadWindowSize = function () {
$(window).resize();
};
//#endregion
});
};
如您所见,this 现在变成了_this,因此,我无法执行服务文件中的功能。
这是我的 babel 配置
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: [['env', { "modules": false }]]
}
}
}
我做错了什么?
谁能帮帮我?
谢谢,
【问题讨论】:
-
我只是想知道如何禁用将 this 转换为 _this。
-
您的代码错误。
this在该上下文中未定义。阅读箭头函数和常规函数之间的区别,您就会明白其中的原因。 -
顺便说一句,ES6 和 ES2015 是一回事。
标签: webpack ecmascript-6 babeljs babel-loader