在Angular服务中,我有一个变量计数,我想在每次更新时观察它,我想将更新的值设置为另一个组件中的另一个变量。
import {BehaviorSubject} from "rxjs/BehaviorSubject";
import 'rxjs/Rx';
export class DashboardService{
count = new BehaviorSubject<number>(0);
count$=this.count.asObservable();
addCount(data){
this.count.next(data);
}
}
我得到了错误,尽管我已经导入了所有相关的库。任何想法为什么我得到这个?谁能告诉我代码发生了什么?
} rxJs版本5.4.3最新!
答案 0 :(得分:0)
试试这个:
export class DashboardService {
count = new BehaviorSubject<number>(0);
count$ = this.count.asObservable();
public addCount = (data) => {
this.count.next(data);
}
}
您遇到的问题是您在函数内部addCount
被更改的上下文中使用this
(即指向其他内容)。在打字稿中使用基于lamda的函数可确保不会发生这种情况。但这并不是一直使用它们的借口。
我建议您在lambda/arrow functions上稍微阅读一下,查看this
在javascript和typescript中的工作原理可能也是一个好主意。< / p>