在我的非角度代码中,我通过以下代码获取控制器对象
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();
编辑: 发现后一种方法的另一个问题是它实例化一个新的控制器对象,而不是返回与该元素关联的原始控制器对象。
答案 0 :(得分:1)
我强烈建议不要将角度代码与外部JS混合使用。每次调用Controller
时,它都会创建一个新对象,但据我所知,你可能想对它或它的数据进行一些操作。对于跨应用程序或应用程序状态的持久数据,您应该使用Service
或Factory
,并且应该在其中进行操作,或者从Controller
而不是某个随机的JS中进行操作。< / p>