AngularJS - 基于URL的更新模型

时间:2012-07-19 06:36:12

标签: javascript angularjs

这基本上是一个跟进问题:AngularJS - How to use $routeParams in generating the templateUrl?。请参阅我的代码,了解这个问题的正确背景。

所有导航部分都运行良好,但现在当我导航时,我想根据$scopeprimaryNav更新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

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

1 个答案:

答案 0 :(得分:33)

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

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