即使在使用 $scope.apply 后也无法使用 $location 服务更改路径

Not able to change path using $location service even after using $scope.apply

我想知道为什么即使我使用了 -

也无法使用定位服务更改我的视图
$scope.$appy() or $scope.apply;

我在发布问题之前进行了研究。我得到了类似问题的结果,其中 none 符合我的情况。

我不想使用计时器函数来实现 link 中指定的相同功能,因为它 CPU 密集:

我的应用程序中的奇怪行为是我可以使用其他脚本中的以下代码更改位置:

$location.path("authenticate").replace();
$scope.$apply();

$location.path("authenticate").replace();
$scope.apply;

工作正常,没有任何问题。

唯一的区别是:上面的代码在没有任何事件触发的情况下执行时工作正常,但如果我在按钮单击事件上使用上面的代码,它会进入空白页面,如下所示:

 <li data-ng-click="logout()"><a data-ng-href="#">Sign Out</a></li>

任何帮助都会有所帮助。

尝试将调用封装在 $scope.apply() 中,如下所示:

$scope.$apply(function(){
    $location.path('authenticate');
});

如果您尝试在一些异步执行后执行您的代码(发生注销时等)- 您的 Angular 引擎可能不知道操作完成。

使用scope.apply里面有具体的动作。还要注意摘要过程,这会引发异常

$scope.$apply(function(){
   if(!$scope.$$phase) {
       $location.path('authenticate');
   } 
});