我有两个不是父组件的组件,它们是子组件,但我需要将数据从组件A传递到组件B. 例: 组件A.ts有一个数据数组 例如:
my data [
{'name':'some a','email':'some a@gmail.com','grades':{}},
{'name':'some b','email':'some b@gmail.com','grades':{}}
]
需要将我的数据传递给组件B.ts
答案 0 :(得分:1)
如果他们没有父/子关系,最好的方法是在A和B的构造函数中共享服务injected。
constructor(private sharingService: SharingService) { }
public myArray = [];
func() {
...
this.sharingService.save(this.myArray);
}
import { Injectable, } from '@angular/core';
@Injectable()
constructor() {}
private array = [];
save(array) {
this.array = array;
}
fetch() {
return this.array;
}
constructor(private sharingService: SharingService) { }
public yourArray = this.sharingService.fetch();
There's a good tutorial on services and component interaction on the Angular site
答案 1 :(得分:0)
我同意@Lying Cake的答案。您应该使用该服务以便在两个独立组件之间共享数据。
您面临的未定义问题是因为您在构造函数中调用了fetch方法。你还没有在这里定义数组值:private array
。所以,它给出了undefined。定义初始值或从构造函数中删除fetch方法,并仅在数组值不是undefined
时调用。