2017-08-25 4 views
0

angular2のtypescriptに問題があります。 私はメソッドへの参照の保存に使用される1つのプロパティを持つ単純なクラスを持っています。Angular2コンポーネントでこの範囲の問題が発生しました

export class Icon{ 
    public OnClick?:() => void; 
} 

が次にコンポーネントで、私は私がicon.OnClick()が正しくmyOnClickMethodを呼び出しているを呼び出していますHTMLテンプレートには、この変数

iconSource: Icon[] { 
    { OnClick: this.myOnClickMethod() } 
} 

public myOnClickMethod(){ 
    this.toggleFilterRow(); 
} 

public toggleFilterRow() 
{ 
    //some logic for filtering the grid 
} 

にメソッドを設定() すべてがありますmyOnClickMethod()は、コンポーネントのスコープではなくアイコンのスコープです。 (結果=不明のメソッドtoggleFilterRow()) この「スコープ」の問題について私にいくつかのヒントを送ってください。ありがとう

+0

このようにしようとする理由を尋ねることはできますか? – Swoox

+0

私はアイコンリスト変数のアイコンを持っています。すべてのアイコンにはonClickActionが必要です。コンポーネントで使用しているこのリスト。あなたはもっと良い解決策を知っていますか? –

+0

親テンプレートと子テンプレートを操作できます。アイコンを親テンプレートに置き、子テンプレートを '

' にしてください。アイコンを設定し、残りの部分を画面の内容でレンダリングするだけです。それをヘッダー(親) - コンテンツ(子)-foorter(親) – Swoox

答えて

0
iconSource: Icon[] { 
    { OnClick:() => { this.myOnClickMethod(); } } 
} 

public myOnClickMethod(){ 
    this.toggleFilterRow(); 
} 

public toggleFilterRow() 
{ 
    //some logic for filtering the grid 
} 

太い矢印(=>)を使用すると、このコンテキストは保持されます。

+0

ありがとう助けてくれてありがとう:)私は太い矢印を知っていたが、このように使うことができることは分かっています:) –

関連する問題