看完之后 这个话题 。我找到了答案。
我改变了我的服务实现:
'use strict'; module.exports = (ngModule) => { ngModule.service('$ui', () => { //#region Methods /* * Trigger windows resize function. * */ this.reloadWindowSize = () => { $(window).resize(); }; //#endregion }); };
对此:
module.exports = (ngModule) => { ngModule.service('$ui', () => { return { //#region Methods /* * Reload window size. * */ reloadWindowSize: () => { $(window).resize(); } //#endregion } }); };
在服务声明中,我返回一组函数并且它有效。
只是想让任何人知道这一点。我花了一个晚上才找到答案。
箭头功能不仅仅是常规功能的快捷方式。
如 参考资料 状态,
有两个因素影响了箭头功能的引入:功能较短和不具有约束力。
由于源代码包含多个嵌套箭头函数, this 从顶级范围检索到 _this 变量,即 undefined ,因为它是模块范围,并且启用了严格模式。
this
_this
undefined
使用箭头函数在语义上是不正确的 service 服务,因为它们是实例化的 new 并使用 this 作为服务实例,而箭头不能 new 编辑,没有自己的 this 。
service
new
它应该是:
ngModule.service('$ui', function () { //#region Methods /* * Trigger windows resize function. * */ this.reloadWindowSize = () => { $(window).resize(); }; //#endregion });