使用Angularjs根据我当前的路径填充DOM元素

时间:2014-01-13 11:08:42

标签: javascript angularjs

我正在做一个多页面网站并使用AngularJS的一些功能,但我很陌生,所以想要一些帮助。它使用ngview加载子页面,具体取决于我索引文件中单击的链接。 但是在这个索引文件中,我有一个标题,我想根据当前视图进行更改。样品:

  <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

1 个答案:

答案 0 :(得分:1)

一个选项,允许您将所有逻辑更新为在一个位置更新此标头,而不是将逻辑划分为子视图的控制器,是在父视图的控制器中侦听$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);
});