0

我正在使用 Jquery Mobile 构建一个 HTML 移动应用程序。到目前为止它令人惊叹。

然而,在构建我的动态模板时,我遇到了一些障碍。

这是我的控制器:

function index()
{
        $data['page'] = "home";
        $page['head'] = $this->load->view('template/head',$data,TRUE);
        $page['header'] = $this->load->view('template/header', $data, TRUE);
        $page['footer'] = $this->load->view('template/footer', $data, TRUE);
        $page['nav'] = $this->nav($data['page']);
        $this->load->view("pages/home", $page);
}

function nav($page)
{
        $data['page'] = $page;
        $page['header'] = $this->load->view('template/header', $data, TRUE);
        $page['footer'] = $this->load->view('template/footer', $data, TRUE);
        return $this->load->view('template/nav',$page,TRUE);
}

不管我为什么以这种方式设置它,为什么在function nav($page)视图中会返回Undefined variable: headerUndefined variable: footer错误?

4

1 回答 1

3

这是因为您试图用数组索引覆盖基于字符串的变量。您正在传递$page给该方法,但随后尝试创建一个调用$page以传递给视图的数组。您需要重命名数组以传递给视图:

function nav($page)
{
    $data['page'] = $page;

    // you should rename the array to pass to the view (from $page to $my_page)
    $my_page['header'] = $this->load->view('template/header', $data, TRUE);
    $my_page['footer'] = $this->load->view('template/footer', $data, TRUE);
    return $this->load->view('template/nav',$my_page,TRUE);
}
于 2013-01-31T19:25:22.987 回答