11

这基本上是这个问题的后续问题:AngularJS - How to use $routeParams in generate the templateUrl? . 有关此问题的正确上下文,请参见我的代码。

所有导航部分都运行良好,但是现在当我导航时,我想$scope根据primaryNavand更新我的一些属性secondaryNav。我以为我可以做点什么,$watch但我似乎什么也做不了。以下是我尝试过的几件事:

$scope.$watch($location.path(), function() {...}); //result in js error
$scope.$watch($location, function() {...}); //function runs once on page load, but not after that
$scope.$watch($window.location, function() {...}); //function runs once on page load, but not after that
$scope.$watch(window.location, function() {...}); //function runs once on page load, but not after that
$scope.$watch(window.location.href, function() {...}); //results in js error

我可能会在我的控制器中创建一些方法来获取这些导航并更新所有内容并导航,然后将 a 添加ng-click到所有锚标记中。然而,我真正喜欢 AngularJS 的一件事是为 href 使用真正的 URL 外观值(例如<a href="#/priNav/secNav">Foo</a>)。当我在不通过控制器上的某些方法的情况下进行路由时,是否无法根据不断变化的 URL 更新我的模型?我希望我的要求是有道理的。

4

1 回答 1

33
 $scope.$watch(function() {
    return $location.path();
 }, function(){
    ...
 });

您应该传递一个可以在范围内评估的函数或字符串

于 2012-07-19T15:54:21.627 回答