在yii中更改已注册脚本文件的顺序
我正在为Yii应用程序制作一个小部件。 主布局视图注册所有常见的脚本文件,如jQuery和jQueryUI。 在我的小部件中,我想使用依赖于已经加载的jQueryUI的jQueryUI插件。
我知道我可以在页面上指定包含脚本的位置,但是只是将它包含在“结束”中似乎有点受欢迎 – 如果我有其他脚本需要在该插件之后加载怎么办? 我如何确保以正确的顺序加载 – 任何人都有任何想法?
您可以在Yii 脚本包中使用依赖项function。 我之前遇到过类似的问题 。
例如,您有如下所示的脚本包配置,
'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
需要(depends) package1
, package3
需要package2
。 让我们假设一个小部件使用package2
,另一个脚本使用package3
。 即使你不渲染小部件,如果你使用Yii::app()->clientScript->registerPackage('package3');
,它会自动安装package2
,然后在package2
之前安装package1
(如果以前某些脚本已经要求package1
则不会安装。)。