web-dev-qa-db-ja.com

Angular 2-ディレクティブにアクセスしてメンバー関数を呼び出す方法

私はこのようなディレクティブを持っています-

@Directive({
    selector:   'someDirective'
})
export class  SomeDirective{         
    constructor() {}    
    render = function() {}
}

ディレクティブをインポートしています

import {SomeDirective} from '../../someDirective';
@Page({
    templateUrl: '....tem.html',
    directives: [SomeDirective]
})
export class SomeComponent {
      constructor(){}
      ngAfterViewInit(){//want to call the render function in the directive
}

NgAfterViewInitで、ディレクティブでrender関数を呼び出します。これを行う方法 ?

9
VISHAL DAGA

これは古い方法です

@Directive({
    selector:   'someDirective'
})
export class  SomeDirective{         
    constructor() {}    
    render() {
       console.log('hi from directive');
    }
}

import {Component,ViewChild} from 'angular2/core';
import {SomeDirective} from '../../someDirective';
@Component({
    templateUrl: '....tem.html',
    directives: [SomeDirective]
})
export class SomeComponent {
      @ViewChild(SomeDirective) vc:SomeDirective;
      constructor(){}
      ngAfterViewInit(){
          this.vc.render();
      }
}

angular2の新しいバージョンについては、ここに記載されている回答に従ってください

ディレクティブの関数を呼び出す

13
micronyks