Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度5-将数据传递到另一个组件_Angular_Typescript - Fatal编程技术网

Angular 角度5-将数据传递到另一个组件

Angular 角度5-将数据传递到另一个组件,angular,typescript,Angular,Typescript,我有一个表单,通过API服务,我可以从特定的用户那里获取数据,所以我想将数据发送到另一个组件,然后使用*ngFor提取数据,但我真的不知道如何做。 (我还必须说,另一个组件不是父视图中的子组件)使用服务: @Injectable() export class DataService { private subject = new Subject<any>(); setData(message: string) { // just an example

我有一个表单,通过API服务,我可以从特定的用户那里获取数据,所以我想将数据发送到另一个组件,然后使用*ngFor提取数据,但我真的不知道如何做。 (我还必须说,另一个组件不是父视图中的子组件)

使用服务:

@Injectable()
export class DataService {
    private subject = new Subject<any>();

    setData(message: string) {
        // just an example:
        this.subject.next({ text: message });
    }

    getData(): Observable<any> {
        return this.subject.asObservable();
    }
}
在其他组件中,您可以订阅:

this.dataService.getData().subscribe(data => {
    // do stuff with the data, for example:
    this.myData = data;
);
不要忘记组件中的构造函数:

constructor(private dataService: DataService) {}

另一种解决方案可以是使用Ngrx:

使用服务:

@Injectable()
export class DataService {
    private subject = new Subject<any>();

    setData(message: string) {
        // just an example:
        this.subject.next({ text: message });
    }

    getData(): Observable<any> {
        return this.subject.asObservable();
    }
}
在其他组件中,您可以订阅:

this.dataService.getData().subscribe(data => {
    // do stuff with the data, for example:
    this.myData = data;
);
不要忘记组件中的构造函数:

constructor(private dataService: DataService) {}


另一种解决方案可以是使用Ngrx:

您可以创建服务来存储数据,并在您想要的任何组件中使用它。您可以使用服务共享数据,或者使用redux为您的应用程序创建存储。请检查您可以创建服务来存储数据,并在您想要的任何组件中使用它。您可以使用服务共享数据,或者使用redux为您的应用程序创建存储你的应用程序请检查我在这部分中没有找到它:private subject=new subject();。在新主题中,我应该放置什么,我的组件的类的名称?@Netox No。它是一种用于存储数据的“容器”。我们在Rxjs中使用它。如果愿意,您可以将类放在
任意
的位置。我认为,这些链接可以帮助您:在第一个示例中,行为主体是一种特殊类型的主体。你可以在这里读到关于主题的内容:我在这一部分不懂:private Subject=new Subject();。在新主题中,我应该放置什么,我的组件的类的名称?@Netox No。它是一种用于存储数据的“容器”。我们在Rxjs中使用它。如果愿意,您可以将类放在
任意
的位置。我认为,这些链接可以帮助您:在第一个示例中,行为主体是一种特殊类型的主体。您可以在此处阅读有关主题的内容: