从 yii2 中的特定视图中排除 Js (vendor-core.js) 文件

Exclude Js (vendor-core.js) file from particular view in yii2

我想在我的特定视图文件中禁用 vendor-core.js。 我已将其包含在 AppAsset.php 中。 但我不需要在特定页面中使用它,因为它会导致一些严重的问题。

我需要删除特定视图文件中的 vendor-core.js。其他Js文件会原样加载

大多数视图都需要

vendor-core.js。但很少有我不想包含的重要观点。

非常感谢任何帮助。

提前致谢..

这是我的 AppAsset 代码

<?php

/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace frontend\assets;

use yii\web\AssetBundle;


/**
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @since 2.0
 */
class AppAsset extends AssetBundle {

    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        //  'css/site.css',
        'css/vendor.min.css',
        'css/theme-core.min.css',
        'css/module-essentials.min.css',
        'css/module-layout.min.css',
        'css/module-sidebar.min.css',
        'css/module-sidebar-skins.min.css',
        'css/module-navbar.min.css',
        'css/module-media.min.css',
        'css/module-timeline.css',
        'css/module-chat.min.css',
        'css/module-charts.min.css',
        'css/module-maps.min.css',
        'css/jquery-ui-timepicker-addon.css',
        'css/custom.css',
    ];
    public $js = [
      'js/vendor-core.js',
        'js/vendor-tables.min.js',
    //    'js/vendor-forms.min.js',
        'js/vendor-media.min.js',
        'js/vendor-charts-all.min.js',
        'js/vendor-maps.min.js',
        'js/vendor-tree.min.js',
        'js/vendor-nestable.min.js',
  //      'js/module-essentials.min.js',
   //     'js/module-layout.min.js',
        'js/module-sidebar.min.js',
        'js/module-media.min.js',
        'js/module-chat.min.js',
        'tinymce/js/tinymce/tinymce.min.js',
        'js/jquery-ui-sliderAccess.js',
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\web\JqueryAsset',
        'yii\bootstrap\BootstrapAsset',

    ];

//public $jsOptions =[
//    'position' => \yii\web\View::POS_READY
//];

}

您可以在 AppAsset 中使用 Init 函数 并根据控制器 ID and/or 操作 ID

在条件下推送 css 或您的 js
public function init()
{  
    if(\Yii::$app->controller->id == 'controllerid')
    {


        array_push($this->css,'css-path/file.css');

        array_push($this->js,  'js-path/file.js');
    }
}

为了方便您的情况,您可以从 js 数组中取消设置而不是推入上面的函数,它不会加载到那个特定的操作中

if(($key = array_search('js-path/file.js', $this->js)) !== false) {
                    unset($this->js[$key]);
   }