2017-01-24 6 views
1

私はangle-cliを使用してbutton()やmodal()などのブートストラップjs関数を使用するプロジェクトを作成していますが、問題は私のtsファイルをコンパイルできます完全に私は実際にそれは私がfollowing-などのクリックイベントの後にボタンの機能を呼び出すのですAngular2でBootstrap JSを使用できません

error_handler.js:53 TypeError: button.button is not a function 
    at NewdeviceComponent.loading (newdevice.component.ts:122) 
    at NewdeviceComponent.add (newdevice.component.ts:97) 
    at CompiledTemplate.proxyViewClass.View_NewdeviceComponent0.handleEvent_67 (component.ngfactory.js:517) 
    at CompiledTemplate.proxyViewClass.<anonymous> (view.js:408) 
    at HTMLButtonElement.<anonymous> (dom_renderer.js:276) 
    at ZoneDelegate.invokeTask (zone.js:265) 
    at Object.onInvokeTask (ng_zone.js:227) 
    at ZoneDelegate.invokeTask (zone.js:264) 
    at Zone.runTask (zone.js:154) 
    at HTMLButtonElement.ZoneTask.invoke (zone.js:335) 

で失敗するブラウザでJavaScript機能を実行しようとすると:

button.button(loading ? 'loading' : 'reset'); 

奇妙な部分がありますそのVSCodeは私にインテリセンスを与え、コンパイルは実際には成功しますが、ブラウザ。

すべてのブートストラップファイルとスタイルシートは、angular-cli.jsonからグローバルにロードされます。ブートストラップのJSを使用して

"scripts": [ 
     "../node_modules/jquery/dist/jquery.min.js", 
     "../node_modules/bootstrap/dist/js/bootstrap.min.js" 
     ] 
+0

あなたのプロジェクトにはどのようにBootstrap JSを組み込みましたか? – AngularChef

+0

@AngularFrance Angi-cli.jsonでは。スクリプトセクション。編集を確認してください。 –

+0

右の音。おそらく、https://github.com/valor-software/ng2-bootstrapのようなラッパーライブラリを使用する必要がありますか? – AngularChef

答えて

1

あなたはjQueryの、ブートストラップのJSをロードし、潜在的にブートストラップのJSコード周りの角ラッパーを作成しなければならないことを意味します。しかし、そうすることでも、jQueryとAngularの両方がDOMアップデートと戦うことになるので、統合がむずかしくなるでしょう.2つのライブラリの哲学はと非常に異なります。です。

角度のあるコンテキストでは、Angularユーザーにとってはるかに優れたAPIを提供する専用のネイティブライブラリを使用することをお勧めします。角度とブートストラップ4:https://ng-bootstrap.github.ioの優れた実装があります。それを使用することで、jQuery/Bootstrap JSの話全体をスキップすることができます。

+0

ブートストラップ3のラッパーはありますか? –

+0

@ pkozlowski.opensource:https://ng-bootstrap.github.io/とhttps://github.com/valor-software/ng2-bootstrapの主な違いは何ですか? – AngularChef

+0

私が言及したのはBootstrap 4です。これは、Bootstrap 3がこれ以上保守されておらず、Bootstrap 4がBetaに近づいているので理にかなっています。 –

関連する問題