2016-01-02 4 views
2

Я хочу, чтобы создать этот результат:Yii2 добавить условия AssetBundle

<!-- Placeholder for IE9 --> 
<!--[if IE 9 ]> 
    <script src="vendors/bower_components/jquery-placeholder/jquery.placeholder.min.js"></script> 
<![endif]--> 

У меня есть этот AppAsset Bundle

class AppAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web/frontend/assets'; 
    public $css = [ 
     'css/site.css', 
    ]; 
    public $js = [ 
     'functions.js', 
     'jquery.placeholder.min.js', 
     'line-chart.js', 
    ]; 

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

Я хочу, что только jquery.placeholder.min.js есть эти jsOption, я попытался добавив jsOptions propertytie без успеха.

public $jsOptions = [ 
     ['condition' => 'IE 9'] 
    ]; 

Есть ли способ заставить это работать? Или, может быть, мне нужно создать новый Bundle только для этого файла?

Я не вижу больше информации об этом в официальном документе: http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

+0

У вас слишком много скобок; try 'public $ jsOptions = [ 'condition' => 'IE 9' ]; –

ответ

2

удалить ваши JS из базового пучка

public $js = [ 
    'functions.js', 
    //'jquery.placeholder.min.js', 
    'line-chart.js', 
] 

Добавить сверток в вашем зависит

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

создать свой актив

<?php 
namespace yourapp\assets; 

use yii\web\AssetBundle; 

class myAsset extends AssetBundle 
{ 
    public $js = [ 
     'jquery.placeholder.min.js', 
    ]; 

    public $jsOptions = ['condition' => 'IE 9']; 
} 
+0

Спасибо, Это работает как шарм :) – Genaut

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