gpt4 book ai didi

javascript - 访问没有元素的 Angular $scope

转载 作者:行者123 更新时间:2023-11-28 18:21:57 25 4
gpt4 key购买 nike

我发现的每个答案都涉及使用一个元素并从那里访问$scope

我想在 Controller 定义之外的 JavaScript 中访问给定 Controller 的范围,最好通过 Controller 名称。这可能吗?

<小时/>

为了清楚起见,我正在尝试更新 Controller 内 $scope 上正在监视的变量。我想要一个独立的函数,我可以将一些参数传递给它,以便为我的应用程序中的多个 Controller 执行此函数。

如果我的处理方式完全错误,请纠正我。最近刚开始接触 Angular。

<小时/>

类似于:

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);
}

最佳答案

请记住,您可以在应用程序中共存任意数量的给定 Controller 实例,但只能有一个服务;服务实际上是单例的。如果您能够假设给定 Controller 只有一个实例,那么听起来您将该 Controller 视为一项服务,并且您应该只使用该服务。如果您不能能够假设只有一个实例,那么您绝对需要通过angular.element(domElement).scope()进行访问,因为否则您将很难选择您正在谈论的众多实例中的哪一个。

请记住,如果您不想使用元素来查找范围,则始终可以使用服务和字典/对象将任意键映射到给定范围。

关于javascript - 访问没有元素的 Angular $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39756901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com