将数据从Component传递到Directive

时间:2016-09-19 12:40:39

标签: angularjs angular service

我想通过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();
}

有什么想法吗?

0 个答案:

没有答案
相关问题