我正在尝试动态初始化我的控制器方法并收集嵌套视图的输出数据。我想避免每次检查$ data ['something']的实例在视图和函数中调用相应的视图php文件。
class Admin extends CI_Controller {
function __construct()
{
parent::__construct();
}
public function _remap($method, $params = array())
{
$this->view($method, $params);
}
public function view($method, $params)
{
$param = (implode(",", $params));
$data = array();
if (method_exists($this,$method) ){
$param = !empty($param) ? $param : '';
$data = call_user_func_array(array($this, $method), array($param));
// and load the data array in the main view
$this->load->view('admin/dashboard', $data);
} else {
$this->load->view('admin/404', $data);
}
}
public function _one_of_mymethod(){
$data['nested_view'] = 'view1';
//calling models gather $data
return $data;
}
}
比数据数组的功能输出正确的嵌套视图。
主视图
会像
<div class="sidebar"><?php $this->view('admin/sidebar'); ?></div>
<div id="content"><?php $this->view('/admin/'. $nested_view) ?></div>
但是,如果我使用ajax调用,这似乎不是正确的方法。动态添加嵌套视图的最佳方法是什么
答案 0 :(得分:0)
如果你使用的是JQuery,你总是可以像这样使用JQuery $ .load方法
$('.sidebar').load('<?php site_url('controllername/methodname')?>');
这是方法名称
function methodname(){
$this->view();
// do any stuff you want.
}