在父控制器中调用子控制器函数

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>

请发布您的父控制器函数。 - Pardeep Saini
$rootScope.logout = function () { processSignOut(); }; html代码: <button type="button" class="btn btn-secondary btn-block" ng-click="logout()">注销 </button> - Amit Anand
https://dev59.com/bGMk5IYBdhLWcg3wtQFd - Avishai Peretz
1个回答

1
这里描述的解决方案是: angularJS:如何在父作用域中调用子作用域函数 在您的情况下:
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.');
            });
    };
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接