简体   繁体   English

如何在yii2中添加条件取决于AppAsset类?

[英]How can I add conditions to yii2 depends in AppAsset class?

There are some depends in AppAsset class in Yii2: 在Yii2中有一些取决于AppAsset类:

public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap\BootstrapAsset'
];

Is there any way to add conditions for this depends like I do it with css and js? 有没有办法为这添加条件取决于我用css和js做什么?

public $jsOptions = ['condition' => 'lt IE 7']; 

Or, may be, you know another way to add conditions to bootstrap and yii JS and CSS files? 或者,您可能知道另一种为bootstrap和yii JS和CSS文件添加条件的方法吗?
Thanks 谢谢

UPD: I've added to config/web.php: UPD:我已经添加到config / web.php:

'components' => [
'assetManager' => [
    'bundles' => [
        'yii\web\YiiAsset' => [
            'jsOptions' => ['condition' => 'lt IE 7'],
        ],
        'yii\bootstrap\BootstrapAsset' => [
            'jsOptions' => ['condition' => 'lt IE 7'],
        ],
    ],
],

But, I've got this (as @arogachev recommends): 但是,我有这个(如@arogachev推荐):

<script src="/assets/8fd244c6/jquery.js"></script>
<!--[if lt IE 7]>
<script src="/assets/bd48c465/yii.js"></script>
<![endif]-->
<script src="/assets/bd48c465/yii.gridView.js"></script>
<script src="/assets/db9cb9aa/js/bootstrap.js"></script>

UPD2 : answer UPD2 :回答

'yii\web\YiiAsset' => [
            'cssOptions'    => ['condition' => 'gt IE 7]>'],
            'jsOptions'     => ['condition' => 'gt IE 7]>'],
        ],
        'yii\bootstrap\BootstrapAsset' => [
            'cssOptions'    => ['condition' => 'gt IE 7]>'],
        ],
        'yii\bootstrap\BootstrapPluginAsset' => [
            'jsOptions'     => ['condition' => 'gt IE 7]>'],
        ],
        'yii\web\JqueryAsset' => [
            'jsOptions'     => ['condition' => 'gt IE 7]>'],
            'cssOptions'    => ['condition' => 'gt IE 7]>'],
        ],

You can customize vendor bundles through application config like that: 您可以通过以下应用程序配置自定义供应商包:

return [
    // ...
    'components' => [
        'assetManager' => [
            'bundles' => [
                'yii\web\YiiAsset' => [
                    'jsOptions' => ['condition' => 'lt IE 7'],
                ],
                'yii\bootstrap\BootstrapAsset' => [
                    'jsOptions' => ['condition' => 'lt IE 7'],
                ],
            ],
        ],
    ],
];

Or in runtime through assetManager : 或者在运行时通过assetManager

use Yii;

...

Yii::$app->assetManager->bundles['yii\web\YiiAsset']->jsOptions = ['condition' => 'lt IE 7'];

Yii::$app->assetManager->bundles['yii\bootstrap\BootstrapAsset']->jsOptions = ['condition' => 'lt IE 7'];

Official docs: 官方文档:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM