【问题标题】:Call child controller function in Parent Controller在父控制器中调用子控制器功能
【发布时间】:2015-12-27 16:17:06
【问题描述】:

我在两个不同的模块中有两个控制器,需要在父控制器中调用一个子控制器函数。已经尝试过 $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>

【问题讨论】:

标签: 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.');
            });
    };
}

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2018-06-23
    • 1970-01-01
    相关资源
    最近更新 更多