[英]Access angular $scope without element
我找到的每个答案都涉及使用一个元素并从那里访问$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);
}
请记住,在您的应用程序中可以同时存在给定控制器的任意数量的实例,但只能有一个服务。 服务是有效的单例。 如果您能够假定给定控制器只有一个实例,那么听起来就像您将该控制器视为服务,而应该只使用该服务。 如果您无法假设只有一个实例,那么您绝对需要通过angular.element(domElement).scope()
进行访问,因为否则您将很难选择很多实例。您正在谈论的实例。
请记住,如果您不想使用元素来查找范围,则始终可以使用服务和字典/对象将任意键映射到给定的范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.