2016-09-17 70 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); 
    }); 
    }; 
});