2014-01-13 67 views
0

我正在做一個多頁網站,並使用AngularJS的一些功能,但我很新,所以想要一些幫助。它使用ngview來加載子頁面,這取決於在我的索引文件上點擊的鏈接。 但在這個索引文件中,我有一個標題,我想根據當前視圖進行更改。示例:根據我目前的路線填充DOM元素與Angularjs

<h1> 
     {{currentheader}} 
    </h1> 


<ul class="nav navbar-nav"> 
<li ng-class="{ active: isActive('/')}"> 
    <a href="#">Home</a> 
</li> 
<li ng-class="{ active: isActive('/rooms')}"> 
    <a href="#zimmer">Rooms</a> 
</li> 
</ul> 

<ng-view></ng-view> 

我在導航上使用'isActive'類來根據我的location.path()設置活動列表項。渲染ngviews工作正常。

但我找不到根據我的活動鏈接修改該標題的方法。我可以用jQuery來做到這一點,但我相信Angular有一個更容易的解決方案?

感謝

編輯:

發現在此基礎上 Update parent scope variable

+0

我想ngswitch可能是有用的,但我沒有找到它在ul元素中使用它的例子。 – artdias90

回答

1

,可以讓你把所有的邏輯在一個地方來更新這個標題中的選項sollution,而不是除以邏輯到您的子視圖的控制器中,是在您父視圖的控制器中偵聽$locationChangeSuccess

function updateHeader($scope,val) { 
    $scope.currentheader = val; // Obviously you'd make this more intelligent. 
} 
$scope.currentheader = "Initial Value"; 
$scope.$on('$locationChangeSuccess', function (event, toUrl, fromUrl) { 
    updateHeader($scope,toUrl); 
});