2016-09-17 4 views
1

divのhtmlがありましたが、その中にbuttonがありました。このhtmlには親のコントローラがありました。今度はiframeの中に私はbuttonとそのhtmlの子コントローラを持った別のhtmlを呼び出しています。今、iframeのボタンをクリックすると、メインのhtmlページにあるdivを隠したいと思っています。iframe内のコントローラとそれ以外のコントローラとのやり取りAngular js

私は、異なるHTMLの親と子の間の2つの異なるコントローラ間のやりとりが必要です。私はこの種のことを達成するためにサービスと親のスコープを使うべきであることを知りましたが、私はそれを動作させることができません。だから誰かがこのような事を見つけたなら、私を助けてください。ありがとう!ここで

はplunkrです:ここhttp://plnkr.co/edit/tpxo5gMZ87dKWampmdOK?p=preview

答えて

1

は、親の子と子への双方向通信の親を持つ更新plunker(http://plnkr.co/edit/EYpEATLGd0B54WpEr7II?p=preview)へのリンクです。必要に応じて、2つの結合方法は、ウォッチャーを使用して同じ方法で達成することができる。

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); 
    }); 
    }; 
}); 
関連する問題