2014-02-27 32 views
0

我是AngularJS的新手。

其实我对所有控制器都有一个共同的功能,所以我在run方法中保留了那段代码。该代码指定当条件满足时导航到其他页面,但在那里我的$location.path()不工作,因此我保留$scope.$apply,然后它使我导航...(这是工作时,我把它保存在控制器中)。

但是,当我把它放在关于$scope(但没有$ scope没有导航)的抛出错误运行。

if(prevPath=='/menupage') 
     { 

       $location.path('/restaurant'); 
       $scope.$apply() ; 
        } 

     else if(prevPath=='/restaurant') 
     { 

       $location.path('/login'); 
     $scope.$apply() ; 

     } 

     else if(prevPath=='/menucategory') 
     { 

       $location.path('/menupage'); 
     $scope.$apply() ;  
     } 

     else if(prevPath=='/menucategorylist') 
     { 

       $location.path('/menucategory'); 
     $scope.$apply() ; 
     } 

     else if(prevPath=='/shoppingcart') 
     { 

       $location.path('/menucategory'); 
      $scope.$apply() ; 
     } 

     else (prevPath=='/item') 
     { 

       $location.path('/menucategory'); 
     $scope.$apply() ; 

     } 

我认为没有选择,除了把代码放在运行...但$scope无法正常工作。

是否有任何其他方法,如将该代码放入函数并从运行调用 (我们可以调用运行中的服务方法)?

回答

0

您需要使用$route.reload();

,而不是$scope.$spply();

看到

if(prevPath=='/menupage') 
     { 

       $location.path('/restaurant'); 
       $route.reload(); 
        } 
. 
. 
. 

而且必须在全球范围内

指定 $route