2016-09-28 4 views
0

Каждый ответ, который я нашел, включает использование элемента и доступ к нему $scope.

Я хочу получить доступ к области видимости для данного контроллера, предпочтительно по имени контроллера, в javascript вне определения контроллера. Возможно ли это?


Для ясности, я пытаюсь обновить переменную наблюдают на $scope в контроллере. Я хочу иметь одну автономную функцию, чтобы передать некоторые параметры, которые могут выполнять эту функцию для множества контроллеров в моем приложении.

Если я полностью ошибаюсь, пожалуйста, исправьте меня. В последнее время началось очень мало.


Что-то вроде:

var myapp = angular.module("myapp", []); 

myapp.controller("myController1", function($scope, $http){ 
    $scope.specialVar = "some value"; 
}); 
myapp.controller("myController2", function($scope, $http){ 
    $scope.specialVar = "some other value"; 
}); 

var myFunction = function(controller, val){ 
    //set the value of specialVar for the passed controller to the passed value 
    myapp.AccessController(controller).$scope('specialVar', val); 
} 
+2

использовать сервис для совместного использования и хранения и привязки данных. Не 100% ясно, что вы пытаетесь сделать, хотя ... или то, что проблема более высокого уровня вы пытаетесь решить – charlietfl

+0

@charlietfl добавил пример –

+0

, так где вы намеревались использовать эту функцию? внутри приложения? Если это так, вы определенно будете использовать услугу – charlietfl

ответ

3

Помните, что вы можете иметь любое количество экземпляров данного контроллера сосуществующих в приложении, но только одна услуга; услуги эффективно одноточечные. Если вы можете предположить, что существует только один экземпляр данного контроллера, то похоже, что вы рассматриваете этот контроллер как услугу, и вместо этого вы должны просто использовать эту службу. Если вы не можете предположить, что существует только один экземпляр, то вам абсолютно необходим доступ через angular.element(domElement).scope(), потому что в противном случае вам будет сложно выбрать, из какого множества случаев вы говорите.

Помните, что вы всегда можете использовать сервис и словарь/объект для сопоставления произвольного ключа в заданную область, если вы не хотите использовать этот элемент для поиска области.

+0

Спасибо! Это хорошая информация для новичка –

Смежные вопросы