2016-02-18 21 views
0

我为我的web应用程序使用ui路由器,并定义了3种不同的视图:标题,内容和菜单。如何重新加载只有一个控制器在Angular URL更改?

当我从菜单中选择一个链接时,我只想重新加载内容视图,其余页面应该保持原样。 这是我的路线配置:

app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$httpProvider', 
function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) { 
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; 
    $locationProvider.html5Mode(true); 

    $stateProvider.state('', { 
     url: '/name=:name', 
     views: { 
      header: { 
       templateUrl: '/new/app/components/header/headerView.html', 
       controller: 'HeaderController' 
      }, 
      content: { 
       // only this one should reload itself on url change. 
       templateUrl: '/new/app/components/content/contentView.html', 
       controller: 'ContentController' 
      }, 
      menu: { 
       templateUrl: '/new/app/components/menu/menuView.html', 
       controller: 'MenuController' 
      } 
     } 
    }); 
} 
]); 

在HTML中我已经定义了对此的看法是这样的:

<div ui-view="header"></div> 
    <div ui-view="content"></div> 
    <div ui-view="menu"></div> 

我如何定义我的配置文件重新加载只有“内容”的看法?

+2

如果'header'和'menu'会一直存在,做他们需要成为路由器状态的一部分? – charlietfl

+0

你说得对。这解决了我的问题!谢谢! –

回答

1

我会给你headermenu指令,或使用ng-include,而不是使用ui-view或把它们放到你的状态配置

<div site-header></div> 
<div ui-view="content"></div> 
<div site-menu></div> 
相关问题