angular 各scope 通信

一:iframe 中的 controller 访问 父页面中的controller 


a页面

<!DOCTYPE html>
<html ng-app="a">
<head>
  <meta charset="UTF-8">
  <title></title>
<script src="lib/angular/angular.min.js"></script>

</head>
<body>
<div id="view" ng-controller="dsViewCtr"></div>
<script>
var app = angular.module('datasheet', []);
app.controller('dsViewCtr', function($scope) {
    $scope.fullScreen=function(){
    var scope=$window.parent.angular.element($window.frameElement).scope();//访问父层的controller
    if(scope.fullClass=="fullClass"){
      scope.fullClass=""

    }else{
      scope.fullClass="fullClass" ;
    
    }
    
    scope.$apply();
  }
});
</script>
</body></html>



 
b页面 

<!DOCTYPE html>
<html ng-app="b">
<head>
  <meta charset="UTF-8">
  <title></title>
<script src="lib/angular/angular.min.js"></script>


</head>
 <body ng-app="datasheet">


  <div id="datasheetSrc" ng-controller="datasheetSrcCtr">
   <iframe id="datasheetIframe" src="http://192.168.1.222:8080/a.jsp" ng-class= "fullClass"></iframe>
   </div>
<script>
var app = angular.module('datasheet', []);

app.controller('datasheetSrcCtr', function($scope)

 { $scope.fullClass = "full";});
</script>
</body>

</html>

 

二:外部的Js访问angular里面的根域

controller.js:

  $rootScope.isActive=""

外部js:

var $body = angular.element(document.body);   
var $rootScope = $body.scope().$root;        
$rootScope.$apply(function () {              
 $rootScope.isActive=2 //把根的isActive变量改为2
})



三:外部的Js访问angular里面的其他controller的域

controller.js:

   $scope.isActive=""

外部js:

angular.element(document.querySelector('[ng-controller=mainController]')).scope(). isActive=3//把 mainController里面的isActive改为3;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值