2017-01-24 8 views
0

独自のモジュール(GridModule)内にある属性「グリッド」ディレクティブを作成しました。このモジュールを別のモジュール(DashboardModule)にインポートして使用します。Angular2の属性ディレクティブ出力 'API'?

今完全に正常に動作しますが、私は、ディレクティブから「エクスポート」APIを(グリッドをロックする機能を提供する、など...)にしようとしたとき、私は問題に遭遇したディレクティブを呼び出す
<div class="dashboard-container" 
[nosGrid]="gridSettings"> 
<div *ngFor="let tile of tiles" 
    [nosGridItem]="tile"> 
    {{tile}} 
</div> 

class DashboardComponent { 
    public tiles: Array<any> = []; 
    public gridSettings: INosGridOptions = { 
    rows: 15, 
    columns: 30 
    }; 

    constructor() { 
    // here I want to do something like this 
    // NosGridDirective.lockGrid(true) 
    } 
} 

class NosGridDirective { 
    public lockGrid(val: boolean) { 
    this._grid.lockGrid(val); 
    } 
} 

私が達成したいすべての

は、グリッドといくつかの他のものを(プライベート変数を設定したり、GridDirectiveのメソッドを呼び出す)ロックできbeeingてさ。

どのように私はこれを行うことができるアイデアを持っていますか?

ありがとうございました!

+0

のようにそれを使用することができますexportAs

@Directive({ selector: '[nosGrid]', exportAs: 'nosGrid', }) class NosGridDirective { @Input() gridSettings; public lockGrid(val: boolean) { this._grid.lockGrid(val); } } 

のように追加した場合は '@Directive()'デコレータを追加してください。 –

答えて

1

あなたが

<div class="dashboard-container" 
    #nosGrid="nosGrid" 
    [nosGrid]="gridSettings"><button (click)="nosGrid.lockGrid(true)">click me</button> 
関連する問題