2015-04-27 2 views
3

Есть некоторые зависит в классе AppAsset в Yii2:Как добавить условия в yii2 зависит от класса AppAsset?

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

Есть ли способ, чтобы добавить условия для этого зависит, как я делаю это с помощью CSS и JS?

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

Возможно, вы знаете другой способ добавления условий для загрузки и yii файлов JS и CSS?
Благодаря

UPD: Я добавил к конфигурации/web.php:

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

Но, у меня есть это (как @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: ответ

'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]>'], 
     ], 

ответ

3

Вы можете настроить пакеты поставщика через приложения конфигурации, как, что:

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

Или во время выполнения через 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']; 

Официальные документы:

+0

Я добавил ваш код к компонентам, но условие было добавлено только к ресурсу yii.js. У Bootstrap и JQuery нет никаких условий ( –

+0

Покажите, как вы его добавили, вы можете обновить исходный вопрос этой информацией. – arogachev

+0

Но я не понимаю, в чем причина добавления таких комментариев для этих пакетов активов. – arogachev

Смежные вопросы