AngularJS-基于URL更新模型

AngularJS - Update model based on URL

本文关键字:模型 更新 URL 基于 AngularJS-      更新时间:2023-11-13

这基本上是这个问题的后续问题:AngularJS-如何在生成templateUrl时使用$routeParams?。有关此问题的正确上下文,请参阅我的代码。

所有的导航部分都工作得很好,但现在当我导航时,我想基于primaryNavsecondaryNav更新$scope中的一些属性。我以为我可以用$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的一点是为hrefs(例如<a href="#/priNav/secNav">Foo</a>)使用真正的URL查找值。当我不通过控制器上的某些方法进行路由时,是否不可能根据不断变化的URL更新我的模型?我希望我的要求是合理的。

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

您应该传递一个函数或字符串,该函数或字符串可以在作用域

内求值