2014-02-27 59 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