2017-11-22 9 views
0

は、これが私のテンプレートです:ngのテンプレート内の要素への参照を取得することは

<ng-template #template> 
    <input #newimg type="file" class="col-md-10" (change)="fileChange($event)"/> 
</ng-template> 

私は#newimgその内部ng-template(私はdivng-templateを変更した場合、それは正常に動作します!)

@ViewChild('newimg') img: ElementRef; //doesnt work 
への参照を取得カント

イメージをアップロードした後にその値を空に設定する必要がありますが、その値は常に未定義です。

+0

どのように 'ng-template'を使用しますか? –

+0

@ AngularInDepth.com 'ngx-bootstrap's modal – Veto

+0

ブートストラップは、テンプレートを使ってコンポーネントの外に埋め込みビューを作成するので、' @ ViewChild'は動作しません。 –

答えて

0

<ng-template>はDOMに追加されず、アプリケーションが実行されるときにJavaScriptコード内にのみ存在します。 *ngForまたは*ngIfのような構造指示を使用してスタンプされている場合にのみ、コンテンツは実際にDOMで作成され、バインディング、コンポーネント、ディレクティブなどがインスタンス化されます。

したがって、スタンプすることなく、問い合わせする#templateはありません。

+0

しかし、彼はngx-bootstrapにそれを渡しています。そして、ブートストラップモーダルは、このテンプレートを使って埋め込みビューを作成します。 –

+0

そして、そのダイアログの親は '@ContentChild( 'template')...'を使ってそれを問い合わせることができます。 –

+0

内容投影は関係ありません。テンプレートは、ブートストラップの 'show'メソッドに直接渡されます。 –

関連する問題