gpt4 book ai didi

javascript - 无法获取 AngularJS Controller 对象

转载 作者:行者123 更新时间:2023-11-29 15:35:00 25 4
gpt4 key购买 nike

在我的非 Angular 代码中,我通过以下代码获取 Controller 对象

var controllerElement = angular.element('[ng-controller="' + controllerName + '"]');
var controller = controllerElement.controller();

直到前天, Controller 对象有一些 $get.h 而不是 Controller 对象时,它一直运行良好{}

以下代码返回正确的 Controller 对象,但在某些情况下 Angular 会抛出异常:

var $controller = injector.get("$controller");
var controller = $controller(controllerName, { $scope: scope });

你能帮我找出以前的方法有什么问题吗,即 controllerElement.controller();

编辑:发现后一种方法的另一个问题是它实例化了一个新的 Controller 对象,而不是返回与元素关联的原始 Controller 对象。

最佳答案

我强烈建议不要将 Angular 代码与外部 JS 混合使用。每次你调用Controller ,它确实会创建一个新对象,但据我从你的问题中了解到,你可能想对它或它的数据进行一些操作。对于跨 Controller 或应用程序状态的持久数据,您应该使用 ServiceFactory ,并且操纵它应该发生在其中,或者来自 Controller不是某个地方的一些随机 JS。

关于javascript - 无法获取 AngularJS Controller 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30341304/

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