gpt4 book ai didi

angularjs - 在 Typescript 中使用 AngularJS Controller 的作用域

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:33 25 4
gpt4 key购买 nike

情况:我最近开始使用 Typescript,目前正在将它集成到我的 AngularJS Web 应用程序中。我一直在尽可能使用“controller as”语法而不是 $scope。

问题:我似乎找不到合适的方法来替换 var self = this;我开始到处用 this 替换 vm ,这很快让我在 forEach 函数、点击事件等内部陷入死胡同。

我的临时解决方案:在每个函数中转换 var self = this;,因为据我所知,我无法在全局范围内转换它。它也并非在所有情况下都有效。

我的问题:我错过了一些明显的事情吗?有没有更好的方法来访问 Controller 的范围?

最佳答案

Fat Arrow 函数来拯救!!!

真的没有必要在 TypeScript 中使用 var self = this...

胖箭头函数保留回调函数内部的(词法)作用域(this 的含义):

var self = this;
fooService.doSomething()
.then(result => {
console.assert(this === self); // this is valid and true
});

对于您的具体示例:

items.forEach((item) => {
this.somethingElse = item; // (no need for self)
});

注意 这并不是 TypeScript 的真正特性,而是 ES6/ES2015 的功能

Further Explanation

关于angularjs - 在 Typescript 中使用 AngularJS Controller 的作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32568001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com