我正在做一个多页面网站并使用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
答案 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);
});