加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularJS:如何在父作用域中调用子作用域函数

发布时间:2020-12-17 09:09:51 所属栏目:安全 来源:网络整理
导读:如何从父范围调用在子范围中定义的方法? function ParentCntl() { // I want to call the $scope.get here}function ChildCntl($scope) { $scope.get = function() { return "LOL"; }} http://jsfiddle.net/wUPdW/ 你可以使用 $broadcast 从父到子: functi
如何从父范围调用在子范围中定义的方法?
function ParentCntl() {
    // I want to call the $scope.get here
}

function ChildCntl($scope) {
    $scope.get = function() {
        return "LOL";    
    }
}

http://jsfiddle.net/wUPdW/

你可以使用 $broadcast从父到子:
function ParentCntl($scope) {

    $scope.msg = "";
    $scope.get = function(){
        $scope.$broadcast ('someEvent');
        return  $scope.msg;        
    }
}

function ChildCntl($scope) {               
    $scope.$on('someEvent',function(e) {  
        $scope.$parent.msg = $scope.get();            
    });

    $scope.get = function(){
        return "LOL";    
    }
}

工作小提琴:http://jsfiddle.net/wUPdW/2/

更新:有另一个版本,较少耦合和更多的可测试:

function ParentCntl($scope) {
    $scope.msg = "";
    $scope.get = function(){
        $scope.$broadcast ('someEvent');
        return  $scope.msg;        
    }

    $scope.$on('pingBack',function(e,data) {  
        $scope.msg = data;        
    });
}

function ChildCntl($scope) {               
    $scope.$on('someEvent',function(e) {  
        $scope.$emit("pingBack",$scope.get());        
    });

    $scope.get = function(){
        return "LOL";    
    }
}

小提琴:http://jsfiddle.net/uypo360u/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读