每次点击URL后$ location不会更新

时间:2016-06-26 01:21:49

标签: angularjs

我正在尝试根据网址更新“帮助”部分。也就是说,如果我有url.domain / x,我想显示特定于'x'的信息。如果我有url.domain / y我想显示特定于'y'的信息。

我现在创建了一个控制器,它使用$ location.path()作为触发器来显示正确的信息,但是在第一个URL加载后没有后续的URL更改$ location.path()显示的内容。这是一个“单页”应用程序。

我现在要做的就是让$ location更新。我在控制器中有$位置:

app.controller('ctrl', function($scope, $location) {

$scope.help = $location.path();
});

在视图中,我有这个显示$ scope.help。

<div ng-controller="crtl">
{{help}}
</div>

但它只显示我首先选择的任何页面加载时$ location的路径。也就是说,如果我点击另一个链接,它不会更新$ location.path()。我究竟做错了什么?而且,有没有更好的方法来实现我想要的目标?

1 个答案:

答案 0 :(得分:1)

想法:

缺少的一点是,控制器中的赋值仅在加载控制器时分配值。作业没有约束力。您需要收听$ location的更改,然后将新值分配给变量OBJECTB_ID

执行此操作的方法如下:

help

说明:

  • 您为位置更改的事件创建了一个侦听器
  • 在这种情况下,您可以为变量$scope.$on("$locationChangeSuccess", function() { $scope.help = $location.path(); }); 分配新位置的值