无法获取AngularJS控制器对象

时间:2015-05-20 05:53:02

标签: javascript jquery angularjs angularjs-controller

在我的非角度代码中,我通过以下代码获取控制器对象

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

直到前天才开始工作,而不是控制器对象控制器对象有一些$ get.h {}

以下代码返回正确的控制器对象,但有一个场景,其中angular抛出异常:

var arr = [{"document_id":"1"},{"document_id":"4"},{"document_id":"3"},{"document_id":"10"},{"document_id":"11"},{"document_id":"2"}];

var new_arr = arr.map(function(item) {
   return item.document_id;
});

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

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

1 个答案:

答案 0 :(得分:1)

我强烈建议不要将角度代码与外部JS混合使用。每次调用Controller时,它都会创建一个新对象,但据我所知,你可能想对它或它的数据进行一些操作。对于跨应用程序或应用程序状态的持久数据,您应该使用ServiceFactory,并且应该在其中进行操作,或者从Controller而不是某个随机的JS中进行操作。< / p>