【发布时间】:2016-06-01 20:27:23
【问题描述】:
我有与不同视图相关的不同 CSS 和 JS 文件。如何根据视图有条件地或动态地加载 CSS 和 JS,以便只有各自的 JS 或 CSS 加载到浏览器?
【问题讨论】:
标签: php codeigniter-3
我有与不同视图相关的不同 CSS 和 JS 文件。如何根据视图有条件地或动态地加载 CSS 和 JS,以便只有各自的 JS 或 CSS 加载到浏览器?
【问题讨论】:
标签: php codeigniter-3
这很简单。只需为您的功能创造条件。然后发送您的 CSS 或 JS 文件位置以查看。
控制器:
public function index() {
// conditional
if (your condition) {
$this->data = array(
'css' => site_url() . "your css file",
'js' => site_url() . "your js file"
);
} else {
$this->data = array(
'css' => site_url() . "your other css file",
'js' => site_url() . "your other js file"
);
}
$this->load->view('page', $this->data);
}
查看:
<link rel="stylesheet" type="text/css" href="<?php echo $css; ?>">
<script src="<?php echo $js; ?>"></script>
【讨论】:
将css和js文件从控制器添加到页面,并使用数据数组传递给视图。 For 循环数组并从视图中加载 css 和 java 文件。 下面给出示例,
控制器部分
$styles[1]['css'] = 'plugins/select2/select2.css';
$styles[2]['css'] = 'plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css';
$data['styles'] = $styles;
$scripts[1]['js'] = 'plugins/select2/select2.min.js';
$scripts[2]['js'] = 'plugins/datatables/media/js/jquery.dataTables.min.js';
$data['scripts'] = $scripts;
查看部分
{if isset($styles)}
{foreach from=$styles item=v}
<link href="{base_url()}assets/{$v.css}" rel="stylesheet">
{/foreach}
{/if}
{if isset($scripts)}
{foreach from=$scripts item=v}
<script src="{base_url()}assets/{$v.js}"></script>
{/foreach}
{/if}
【讨论】:
$add_js = array(
'filename' => array(BASEJS.'themejs/bootstrap-fileinput.js'),
'type' => 'import',
);
$footer = array(
'set_title' => MAINTITLE,
'javascript' => $add_js,
);
$get_footer = $this->settings->set_footer($footer);
【讨论】: