Javascript 无法将数据从共享服务获取到angular 2中的组件
在我们的Angular 2项目中。我试图使用它来实现两个组件之间的通信 我们有一个Javascript 无法将数据从共享服务获取到angular 2中的组件,javascript,angular,typescript,sharedservices,Javascript,Angular,Typescript,Sharedservices,在我们的Angular 2项目中。我试图使用它来实现两个组件之间的通信 我们有一个BotData.SharedService.ts文件,如下所示: import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; import { Subject } from 'rxjs/Subject'; import { Observab
BotData.SharedService.ts
文件,如下所示:
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Subject } from 'rxjs/Subject';
import { Observable } from 'rxjs/Observable';
export interface Data {
name: string,
}
@Injectable()
export class BotDataService {
sharingData: Observable<Data[]>
private _sharingData: BehaviorSubject<Data[]>;
private dataStore: {
sharingData: Data[]
};
constructor() {
this.dataStore = { sharingData: [] };
this._sharingData = <BehaviorSubject<Data[]>>new BehaviorSubject([]);
}
saveData(userData) {
console.log(userData)
this._sharingData.next(userData);
}
getData() {
console.log('get data function called' + JSON.stringify( this.sharingData ) );
return this._sharingData.asObservable();
}
}
这里的修复方法是什么?下一个函数方法的定义在哪里?subject下一个方法用于向可观察对象发送消息,然后发送给该可观察对象的所有订户。预定义函数您可以共享“下一个”函数的定义吗?我已经提到,您在订阅中调用get函数,而在save方法中调用next函数。我认为这是行不通的。根据博客,下一个observable方法适用于observer的所有订阅,但在您的示例中并非如此
constructor(private botdataservice: BotDataService) {
this.botdataservice = botdataservice;
this.botdataservice.getData().subscribe(_sharingData => {
// this.userKonte = _sharingData;
console.log(JSON.stringify(_sharingData));
});
}