2016-02-18 20 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> 
相關問題