0

我正在尝试动态初始化我的控制器方法并为我的嵌套视图收集输出数据。我想避免每次调用适当的视图 php 文件的视图和函数中的 $data['something'] 实例时检查。

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 调用。动态添加嵌套视图的最佳方法是什么

4

1 回答 1

0

如果您使用的是 JQuery,您可以随时使用 JQuery $.load 这样的方法

$('.sidebar').load('<?php site_url('controllername/methodname')?>');

这是方法名称

function methodname(){
    $this->view();
   // do any stuff you want.
}
于 2013-02-26T12:49:46.777 回答