Codeigniter - 如何在视图中包含动态javascript文件

时间:2013-07-30 16:14:14

标签: php codeigniter

如果满足某些条件,我正在尝试在标题视图中包含以下代码块(包含一些动态值)。

<script src="<?php echo base_url();?>assets/jquery.Jcrop.js"></script>
<link rel="stylesheet"  href="<?php echo base_url();?>assets/jquery.Jcrop.css" />
<script type="text/javascript">
    <?php if (isset($load_jcrop_api) && $load_jcrop_api === TRUE) {?>
        // Javascript 1
    <?php } else { ?>
        // Javascript 2
    <?php } ?>
</script>

我已经完成了一些阅读,并且我开始尝试以下操作,但是我在尝试从视图中调用此函数时遇到错误,所以我有点卡在最佳方法上。

CONTROLLER

function get_jcrop_ini() {
    $this->output->set_header('Content-type: text/javascript');
    $data = array( 'messages' => $this->session->flashdata('message'));
    $this->load->view('jcrop_ini',$data);
}

查看

if (isset($load_jcrop) && $load_jcrop === TRUE) {
    $this->get_jcrop_ini();
}

1 个答案:

答案 0 :(得分:1)

在控制器中加载JS视图并将其传递给控制器​​。

$jsview = $this->load->view('view_name', array(), true);

请注意,第三个参数设置为true。这会将视图返回给您,而不是将视图输出到屏幕。

然后,将其传递给您的主视图。

$data['js'] = $jsview;

$this->load->view('mainview',$data);

这是一种更好的MVC方法,因为逻辑仍然存在于控制器中。