2015-04-16 4 views
3

Я знаю, что это грязно, но мне нужно получить доступ и редактировать переменную в угловом контроллере js из внешней функции, которая не является угловой js. Как мне это сделать?Доступ к угловым переменным контроллера js из собственного javascript

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.???); 
} 
+0

Зачем вам этот трюк? Можете ли вы попытаться уточнить? – Tony

ответ

6

Сначала вам нужно получить scope объект контроллера. Я бы с пути, который я знаю:

Чтобы получить объем контроллера, вы должны получить ссылку элемента DOM и вызвать scope()

Если, например, конкретный элемент Dom является то, mg-controller установлен, то

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

Теперь вы можете получить доступ к любому прицелу свойства здесь.

scope.myVariable = "set some value"; 

Но так как вы работаете из углового масштаба, вы должны запустить цикл дайджеста вручную с помощью $ применить().

scope.$apply();