我正在使用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: header
和Undefined variable: footer
错误?
答案 0 :(得分: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);
}