2015-11-09 93 views
4

我有兩個控制器在兩個不同的模塊,需要調用父控制器中的子控制器功能。已嘗試$ rootScope,但它在這種情況下不起作用。父控制器調用子控制器功能

這裏是孩子控制器功能代碼:

$scope.processSignOut = function() { 
      LogoutService.save(
       function (response) { 
        $state.go('support.login'); 
       }, function (error) { 
        showAlert('danger', 
         'logout unsuccessfull. Please try again.'); 
       }); 
     }; 

父控制器

$rootScope.logout = function() { 
      $rootScope.processSignOut(); 
     }; 

HTML代碼

<button type="button" class="btn btn-secondary btn-block" 
    ng-click="logout()">Logout 
</button> 
+0

發佈你的父母控制器功能。 –

+0

$ rootScope.logout = function(){ processSignOut(); }; HTML代碼: <按鈕類型= 「按鈕」 類= 「BTN BTN-二次BTN-塊」 納克單擊= 「登出()」>註銷 –

+0

http://stackoverflow.com/questions/19038778/ angularjs - 如何對呼叫兒童範圍功能,在父作用域 –

回答

1

這裏介紹的解決方案: angularJS: How to call child scope function in parent scope

在你的情況:

function ParentCntl($scope) { 
    $scope.logout = function(){ 
     $scope.$broadcast ('processSignOut'); 
    } 
} 

function ChildCntl($scope) {    
    $scope.$on('processSignOut', function(e) { 
     $scope.processSignOut();   
    }); 

    $scope.processSignOut = function() { 
     LogoutService.save(
      function (response) { 
       $state.go('support.login'); 
      }, function (error) { 
       showAlert('danger', 
        'logout unsuccessfull. Please try again.'); 
      }); 
    }; 
}