2017-10-03 12 views
0

私はAngular4アプリケーションでZurb Foundationフレームワークを使用しています。私はいくつかのコンポーネントに(ドロップダウンメニュー、アコーディオン、などのような)それの異なる要素を使用して、私は次のように、私は警告の多くを得るのアプリを実行するたび:財団のいずれかを使用する各コンポーネントにFoundation functoinが実行されたかどうかを検出します

foundation.min.js:3 Tried to initialize responsive-toggle on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize accordion on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize dropdown-menu on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize responsive-toggle on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize sticky on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize accordion on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize dropdown-menu on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize responsive-toggle on an element that already has a Foundation plugin. 
foundation.min.js:3 Tried to initialize sticky on an element that already has a Foundation plugin. 

Javscriptを必要とする要素が、私はこれを実行します。

ngOnInit() { 
    // We initalize Foundation framework once the component has loaded 
    $(document).foundation(); 
} 

私はメインのアプリのコンポーネントに一度だけ、それを実行しようとしたが、すべてが動作を停止します。

この警告を表示しない方法があるか、Foundationに既に読み込まれていることを検出させる方法があるかどうかを知りたいと思います。

ありがとうございます!

+0

私は角については知識がありませんが、通常、これらの警告は、基礎プラグインを複数回initしようとしているときに発生します。 '$(document).foundation();'を2回以上呼び出さないことを再度確認してください。 – defteH

+0

こんにちは!はい、私は複数の関数を複数回実行するので、これが起こることはわかります。メインアプリケーションの後に読み込まれるFoundation要素を持つコンポーネントがあるので、私はそれを行う必要があります。だから、初めて関数を呼び出すと、関数はまだ作成されていないので、関数を初期化するときに関数を呼び出す必要があります。私はこれらの警告メッセージを無効にすることができた場合...あなたのコメントありがとう! – Fel

+0

その場合は、foundationを呼び出して、代わりにreinitを使用し、nginitの内部でそれを使用してください。使用例 'Foundation.reInit($( '[data-equalizer]'));' – defteH

答えて

0

私は右の私の目の前に答えを持っていた:

変更$(document).foundation();

$("NEW_FOUNDATION_ELEMENT_SELECTOR").foundation();への新しい財団コントロールを使用する各コンポーネントに。

ので、例えば、ngOnInitのコードがある財団アコーディオンを使用して角度成分に:

ngOnInit() { 
    [...] 

    $(".accordion").foundation(); 
} 

すべてのコンポーネントにこれを行うと警告が消えました。

関連する問題