YII2在bootstrap.js之前调用jquery-ui代码

beg*_*ner 5 assets yii2

这是我的资产代码..

public $js = [
    'js/jquery-ui.min.js',
    'js/app.min.js',

];
Run Code Online (Sandbox Code Playgroud)

我在视图文件中使用了一些小部件......这里是js文件的顺序.我想要的是在bootstrap.js之前调用jquery-ui.js ..怎么做?

在此输入图像描述

aro*_*hev 3

将 jQuery UI 放在 Bootstrap 之后没有任何意义,因为它们根本不相互依赖。但是为了在另一个包之前包含包,您应该添加对相关包的依赖关系。

对于自定义资源包,你可以这样写:

$depends = [
    // Write classes of dependent asset bundles here, for example:
    'yii\jui\JuiAsset',
];
Run Code Online (Sandbox Code Playgroud)

但由于 Bootstrap 是内置资产,因此您不能这样修改它。相反,您可以通过 Asset Manager 的配置进行全局设置:

return [
    // ...
    'components' => [
        'assetManager' => [
            'bundles' => [
                'yii\bootstrap\BootstrapAsset' => [
                    'depends' => [                  
                        'yii\jui\JuiAsset',
                    ];
                ],
            ],
        ],
    ],
];
Run Code Online (Sandbox Code Playgroud)

或者在渲染视图之前在一个特定位置设置依赖关系:

Yii::$app->assetManager->bundles['yii\bootstrap\BootstrapAsset'] = [
    'depends' => [                  
        'yii\jui\JuiAsset',
    ];
],
Run Code Online (Sandbox Code Playgroud)

官方文档: