JavaScript调用AngularJS的函数$scope变量

半兽人 发表于: 2018-11-11   最后更新时间: 2018-11-11 22:26:27  
{{totalSubscript}} 订阅, 4,445 游览

因为代码比较陈旧,新的代码都是使用Angularjs写的,但是需要在其他老的JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定;

首先获取AngularJS application

方法一:通过controller来获取app

var appElement = document.querySelector('[ng-controller=mainController]');

然后在获取$scope变量:

var $scope = angular.element(appElement).scope(); 

如果改变了其中的变量之后,需要在页面表现出来,还需要调用apply()方法:

$scope.$apply();

方法二:通过DOM操作获取app

//通过DOM操作获取app对象
var element = angular.element($document.getElementById("app"));
//得到app对象,可以获取app的controller
var controller = element.controller();
//得到app对象,可以获取app的$scope
var scope = element.scope();
//调用$scope中的方法
scope.sub1();
//调用方法后,可以重新绑定,在页面同步(可选)
scope.$apply();
//调用字段
scope.field1;

几个相关函数:

  • 获取当前元素的$socpe:
    angular.element(domElement).scope()
    
  • 获取当前app的injector
    angular.element(domElement).injector() 
    
  • 获取当前元素的controller
    angular.element(domElement).controller() 
    
更新于 2018-11-11

查看AngularJS更多相关的文章或提一个关于AngularJS的问题,也可以与我们一起分享文章