Yii2为AssetBundle添加条件

时间:2016-01-02 00:05:51

标签: yii2 yii2-advanced-app

我想创建这个结果:

boot.ts:4

我有这个AppAsset Bundle

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

我希望只有jquery.placeholder.min.js有这些jsOption,我尝试添加jsOptions属性但没有成功。

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

有办法让这个工作吗?或者我可能只为这些文件创建一个新的Bundle?

我在官方文档中看不到有关此内容的更多信息:http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

1 个答案:

答案 0 :(得分: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'];
}