7

Yiiアプリケーション用のウィジェットを作成しています。メインレイアウトビューは、jQueryやjQueryUIなどのすべての一般的なスクリプトファイルを登録します。私のウィジェットでは、すでにロードされているjQueryUIに依存するjQueryUIプラグインを使用したいと思います。

スクリプトをページのどこに含めるかを指定できることはわかっていますが、「最後」にスクリプトを含めるのは少し難しいようです。プラグインの後にロードする必要のある他のスクリプトがある場合はどうなりますか?それらが正しい順序でロードされていることを確認するにはどうすればよいですか?誰かがアイデアを持っていますか?

4

1 に答える 1

11

Yiiスクリプトパッケージの依存関係機能を使用できます。以前も同様の問題がありました。

たとえば、次のようなスクリプトパッケージ構成があります。

'clientScript' => array(
  'packages' => array(
     'package1' => array(
          'basePath' => 'path.to.package1',
          'js' => array(
              'package1.js',
          ),
          'css' => array(
              'package1.css'
          ),
      ),
     'package2' => array(
          'basePath' => 'path.to.package2',
          'js' => array(
              'package2.js',
          ),
          'css' => array(
              'package2.css'
          ),
          'depends' => array(
                'package1',
          )
      ),
     'package3' => array(
          'basePath' => 'path.to.package3',
          'js' => array(
              'package3.js',
          ),
          'css' => array(
              'package3.css'
          ),
          'depends' => array(
                'package2',
          )
      ),
   )
)

上記のサンプルでは、package2​​requires(依存)package1およびpackage3requires package2。あなたの場合、ウィジェットがを使用package2し、他のスクリプトがを使用するとしますpackage3。ウィジェットをレンダリングしない場合でも、を使用すると、ウィジェットYii::app()->clientScript->registerPackage('package3');が自動的にインストールされ、以前にインストールされます(または、以前に一部のスクリプトで既に必要な場合はインストールされませんpackage2)。package1package2package1

于 2012-06-21T02:49:32.883 に答える