gpt4 book ai didi

javascript - 使用 knockout 和 typescript 。如何从订阅中更改 Observable 的值?

转载 作者:行者123 更新时间:2023-12-03 07:56:29 24 4
gpt4 key购买 nike

使用 knockout 和 typescript 。如何从订阅中更改 Observable 的值?

我正在使用 Typescript 重构 KO 旧代码,我发现这段代码订阅了一个可观察对象,并使用“this”更新它,这是 TypeScript 不可能实现的。

let utils = new Utils();

utils.subscribeFilterAlphanumeric = function(val){
var newVal = utils.filterAlphanumeric(val);
this(newVal);
// "this" in regular JS is the observable
// "this" in Typescript is the Class "Utils"
};

myObservable = ko.observable();
myObservable.subscribe(utils.subscribeFilterAlphanumeric , myObservable);

对于如何在 Typescript 中实现此功能有什么建议吗?

谢谢!

最佳答案

在 TypeScript 中,您可以通过使用或不使用 => 来控制“this”是什么。

class x {
public myObservable: KnockoutObservable<any>;

constructor(){
this.myObservable = ko.observable<any>();
this.myObservable.subscribe(function(val){
// Not using => this remains myObservable
var newVal = utils.filterAlphanumeric(val);
this(newVal);
})
}
}

应该可以正常工作

关于javascript - 使用 knockout 和 typescript 。如何从订阅中更改 Observable 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777057/

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