我想通过sharedDataService将一组数据(来自URL的数据)从ParentComponent传递给ChildDirective。我使用this,但我不知道这是否是最佳方式。
这是我的ParentComponent
@Component({
...
directives: [ChildDirective, ROUTER_DIRECTIVES],
})
export class FormsAddClient implements OnInit{
params=[];
constructor(
private _routeParams: RouteParams,
private _sharedData: SharedData){
this.params['video_id']=this._routeParams.get('video_id');
this.params['soc_id']=this._routeParams.get('soc_id');
}
ngOnInit(): void {
this._sharedData.videoData.next(this.params);
}
}
我的ChildDirective
export class ChildDirective {
videoData;
constructor(
private _sharedData:SharedData) {
this._sharedData.videoData.subscribe(data=>{
this.videoData = data;
console.log(this.videoData;
});
}
}
我的ShareDataService
import {Injectable,Inject} from '@angular/core';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class SharedData {
videoData = new Subject();
}
有什么想法吗?