2016-09-17 49 views
1

我有一个html,我有一个iframediv其中有button。为了这个HTML我有一个父控制器。现在在iframe里面,我打电话给另一个html,它有一个button以及一个子控制器。现在我想隐藏div这是在主html页面,当我点击iframe内的按钮。iframe中的控制器与控制器之外的控制器之间的互动角js

所以我想要两个不同的控制器之间的互动,不同htmls的父母和孩子之间。我开始知道我们应该使用服务和$父范围来实现这种事情,但我无法使其工作。那么,如果你遇到过这样的事情,有人可以帮助我。谢谢!

这里是plunkr:http://plnkr.co/edit/tpxo5gMZ87dKWampmdOK?p=preview

回答

1

这里是更新plunker(http://plnkr.co/edit/EYpEATLGd0B54WpEr7II?p=preview)的链接,其具有双向通信父母的孩子,孩子的父母。双向结合,如果需要可以以相同的方式实现,通过使用观察者:

app.js

appInParentWindow.controller('ParentController', function($scope, $window) { 
    $scope.$on('from-iframe', function(e, hide) { 
    // toggle visibility 
    $scope.parentbtn = !$scope.parentbtn; 
    }); 

    $scope.message = function() { 
    // get child scope, we do not use factory since frame is not there yet in that phase 
    $childScope = $window.frames[0].angular.element($window.frames[0].frameElement).scope(); 

    $childScope.$apply(function() { 
     $childScope.$emit('from-parent', $scope.messageText); 
    }); 
    }; 
});