从本地JavaScript访问AngularJS控制器变量

3

我知道这很不规范,但我需要从一个非AngularJS的外部函数访问和编辑AngularJS控制器中的变量。我该怎么办?

module.controller('table', function($rootScope, $scope, $modal, $q, $compile, $timeout,fields, querySrv, dashboard, filterSrv) {
  var _d = {
    size    : 100
  }
}

功能:

get_var = function(){
    console.log("get_var");
    console.log(document.???);
}

为什么你要用这个技巧?你能试着更精确一些吗? - Tony
1个回答

6

首先,你需要获取控制器的scope对象。我会选择我知道的一种方法:

要获取控制器的作用域,必须获取DOM元素的引用并调用scope()

例如,如果特定的DOM元素设置了mg-controller,则

var scope = angular.element(document.querySelector(".selectorHere")).scope();

现在你可以在这里访问任何作用域属性。
scope.myVariable = "set some value";

但是由于你正在angular范围之外工作,因此必须使用$apply()手动触发digest周期。

scope.$apply();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接