从 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]);
}
我想在我的特定视图文件中禁用 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 或您的 jspublic 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]);
}