2017-07-18 4 views
1

私はangle2のコンポーネントにnouisliderを含めることを試みています。 "https://github.com/tb/ng2-nouislider/blob/master/src/nouislider.ts"角度2でELementRefまたは@ViewChildを使用して特定のDOM要素にアクセスするにはどうすればよいですか?

私はそれを独立したコンポーネントとして動作させることができましたが、私のビジネスログインでは他のコンポーネントに持っている必要があります。 noUiSlider(10.0.0): ERRORエラー:

コンポーネントのコードを配置した後、私は次のエラーを取得しています作成する必要が単一の要素を、得た:ヌル

これは私のHTMLスニペットです:

<div #nouiSliderinput [attr.disabled]="disabled ? true : undefined"></div> 

これは私がエラーに直面しています私のコンポーネント抜粋です:

inputsConfig.format = this.format || this.config.format || new 
DefaultFormatter(); 
this.slider = noUiSlider.create(
    this.el.nativeElement.querySelector('.nouiSliderinput'), 
    Object.assign(this.config, inputsConfig) 
); 

this.handles = 
[].slice.call(this.el.nativeElement.querySelectorAll('.noUi-handle')); 

私は、THI "nativeElement.querySelector( 'nouiSliderinputを。')" を使用することができませんでしよsはnullを返します。

IDまたはクラスを使用してDOM要素にアクセスする方法はありますか。

+3

あなたはgithubリポジトリからコードをコピーしましたか?なぜnpmを使用していないのですか?あなたのアプローチでは、パッケージのアップデート/バグ修正を受け取ることはできません。また、このようにパッケージが増えれば、それらを更新し続ける悪夢になるでしょう。 – Akkusativobjekt

+0

提案していただきありがとうございます。私はこのように更新するのは難しいと認めますが、私のプロジェクトでは、AOTをコンパイルできる必要があります。したがって、AOTコンパイルをサポートするためにプラグインまたはjqueryを使用していません。 –

+0

aotは問題ではないはずです:https://github.com/tb/ng2-nouislider/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20aot – Akkusativobjekt

答えて

1

nouiSliderinputにアクセスしてください。 nativeElementを使用してアクセスできます。 querySelector

@ViewChild('nouiSliderinput') public nouiSliderinput: ElementRef; 

ngOnInit() { 
    // you will get the element by below line 
    console.log(this.nouiSliderinput.nativeElement); 
} 
+0

これは次のように投げかけていますエラー: ** TypeError:未定義のプロパティ 'nativeElement'を読み取ることができません** また、ngAfterViewInit()角フックに置くと同じエラーが発生します。 –

+0

は、 '

'が '* ngIf'条件の中にないことを確認でき、あなたは画面上のdiv内のコンテンツを見ることができますか? – Dhyey

+0

私の悪い!はい、HTMLスニペットは '* ngIf'条件にあります。観察してくれてありがとう。 –

関連する問題