2016-06-07 165 views
1

如何在不重新加载整个主视图的情况下加载我的导航菜单的视图?像模板或部分视图。需要使用ajax来做到这一点吗?怎么会这样?我对阿贾克斯了解得不多。有可能看到一个例子吗?使用Codeigniter或模板或部分视图的动态视图

我打开我家的视图控制器是这样的:

$data = [ 
      'header_view'    => 'main/header', 
      'nav_view'     => 'main/nav', 
      'section_view'    => 'main/main_view', 
      'article_view'    => 'main/article', 
      'aside_view'    => 'main/aside', 
      'footer_view'    => 'main/footer', 
     ]; 

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

然后我从家里视图加载vievs:

<section> 
      <?=$this->load->view($section_view);?> 
</section> 
... 

而在导航视图我想要把链接到不同部分无需重新加载导航视图,因为我将有一个树结构和其他东西。

enter image description here

回答

1

你为什么不使用AngularJS补充的吗?您可以使用ui-routes或ng-routes创建单个页面应用程序。你可以调用你的控制器方法的ajax来渲染你的视图,并且你可以在那里显示这个视图。

+0

哦,我不知道AngularJS。我刚看到很多例子,我认为它可以为我工作。谢谢 ;) – Noark

0

编辑

为了做一个页面的iframe的网站,你需要建立一个控制器没有别的

Controller -> loadpage($name) 

然后将其路由返回页面不过你想

然后,创建一个ID为

的iframe
<iframe name="maincontent"></iframe> 

显然,添加您所需的样式/属性。

在你的链接,在目标

<a href="/url/page" target="maincontent">Link 1</a> 
+0

这将有加载整个页面相同的问题,而不是任何部分保持其余部分。 – Noark

+0

你能解释一下你的意思吗?或者给我一个更清晰的例子,说明你想要什么? –

+0

对不起,我英语不好。我在网络中同时有3个视图。其中一个有第三个视图加载内容的链接,但我不想更改第一个和第二个视图的内容。我只需要重新加载第三个的内容。 – Noark

相关问题