2016-05-01 15 views
1
abc.component.ts 
import... 
... 
... 
@component({ ... }) 

export class Abc { 

    public foo(){ 
    console.log("execute foo in UserComponent's xyz() "); 
    } 
} 

user.component.ts 
import... 
... 
... 
import {Abc} from '../utils/abc.component'; 
@Component({ 
    selector: 'user', 
    templateUrl: 'app/user/user.html', 
    providers: [HTTP_PROVIDERS], 
    directives: [Abc] 
}) 
export class UserComponent { 

    xyz(){ 
     Abc.foo(); //--> ? 
    } 
} 

私はuser.component.tsにAbcモジュールをインポートしました。 UserComponentクラスメソッドでAbc.foo()を呼び出すにはどうすればよいですか?あなたが好き公式ドキュメントのAngula2からParent calls a ViewChildシナリオを使用することができ角2(インポートスクリプト)でインポートされたモジュールから関数を呼び出す方法

+0

DOMに関連するコンポーネントである方法です。あなたは通常、クラスのメソッドを呼び出さない。通常は、特定のインスタンスのメソッドを呼び出す必要があります。 –

+0

@GünterZöchbauerDOM 'abc'(html要素)の中に 'user'(html要素)があります –

+1

あなたが達成しようとしていることを示す質問にいくつかのコード/ htmlを追加してください。 –

答えて

0

plunker例を対応するこの

親コンポーネント

import {Component, ViewChild} from '@angular/core' 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
     <abc></abc> 
    </div>` 
}) 
export class App { 
    @ViewChild(ABC) 
    private abc:ABC; 
    ngAfterViewInit() { 
    this.abc.foo(); 
    } 
} 

はここhttps://plnkr.co/edit/VPsMTtJ29XBWr7SCqbzA?p=preview

+0

ありがとうございます。出来た。 –

+0

''指示文 'は' Component '型には存在しません。 –

+0

@AravindhGopi更新された回答を表示 – yurzui

関連する問題