2016-11-16 8 views
0

私は@Componentに<select class='select'>のものがあります。角度2 - JQueryとSelect2の指示

私はSelect2という名前のサードパーティ製のライブラリを使用してすべての選択をスタイルするテンプレートに従っています。 HTML + jQueryの+ Selectセレクトコードは次のとおりです。

$(document).ready(function() { 
    $('.select').select2(); 
}); 

これを行うためのディレクティブを作成するには良いでしょう場合、私は思っていたので、私が試した:

import {Directive, ElementRef} from '@angular/core'; 

@Directive({ 
    selector: '[simple-dropdown]' 
}) 
export class SimpleDropdownDirective { 

    constructor(el: ElementRef) { 
    $(el.nativeElement).select2(); 
    } 

} 

しかし、私は取得していますエラーはselect2()メソッドで発生します。サードパーティ製のライブラリであるため、jQueryで行ったようにインストールすることはできません。

あなたは何をお勧めしますか?

+0

http:// stackoverflowの一部またはすべてを見たことがありますか? com/q/36173678/3001761、https://www.npmjs.com/package/angular2-select2、https://www.npmjs.com/package/ng2-select2 – jonrsharpe

+0

@jonrsharpeはい。 Select2はサードパーティのライブラリの一例にすぎません。私は別のライブラリで同じ問題に直面しています。 select2.jsをインポートできるかどうか疑問に思っていたので、http://stackoverflow.com/a/35055539/5922900のように、ディレクティブの例を作ることができました。ドロップダウン関数はインポートされた 'semantic'ライブラリから来ています。 –

+0

必然的に*「どのように第三者のライブラリとインターフェイスするのか」*が広すぎることになります。特定のエラーを表示できる場合は、この特定の問題の解決に役立つ可能性のある現在のコードを取得してください。 – jonrsharpe

答えて

0

Select2はjQueryに依存するため、これはそのままでは機能しません。

jQueryを使用して要素を選択すると、ネイティブ要素は取得されず、jQuery拡張要素が取得されます。 Select2をAngular 2に移植するか、querySelectorAllなどのネイティブブラウザAPIを使用できるようにするオプションがあります。 (作成者に機能要求を出そうとすることもできますが、Select2はjQueryに依存しているので、実装することはできません)。

+0

私は何をしようとしていたのは、セマンティックで行ったことと同じです:http://stackoverflow.com/a/35055539/5922900ドロップダウン機能は、インポートされた 'セマンティック'ライブラリから来ています。 –