1

クラスが2つあり、どちらもライブラリhighcharts.jsを使用しています。だから両方ともレンダリングされる前にhighcharts.jsを含めるべきです。OctoberCMS:jsファイルがすでに別のウィジェットに含まれているかどうかを調べるには

public function loadAssets() 
{ 
    $this->addJs('js/highcharts.js'); 
} 

問題は別のレポートウィジェットがすでにページに追加されている場合、私はそうでないhighcharts.jsは二回、バックエンドのダッシュボードに含まれる、addJsメソッドを呼び出すべきではないということです。そのため、彼らはloadAssetsメソッドを実装します。 jsファイルを複数回追加しないようにするにはどうすればよいですか?

答えて

0

addJs()addCss()関数を使用する場合、10月自身がアセットが既にロードされているかどうかをチェックし、アセットが既にロードされているかどうかを確認します。

+0

これは、同じレポートウィジェットの複数のインスタンスに対してのみ該当します。 2つの別々のウィジェットのインスタンスが2つある場合、それらはすでにjavascriptファイルが含まれていることを知ることができません。それを試してみてください! – Meysam

+0

私は5つの異なるレポートウィジェットを使用しており、3つのjsファイルが各ウィジェットにロードされています。 私はウィジェット 'render()'関数で 'addJs()'を呼び出していますが。この方法では、アセットは複数回読み込まれません。 – dragontree

関連する問題