我试图在Angular的控制器中注入一个工厂,但我不能这样做。这是我的代码。
app.controller('ManejadorEventosVista',['AdministradorMarcador',ManejadorEventosVista]);
'app'是与模块相对应的变量,具有各自的依赖关系。控制器是'ManejadorEventosVista',需要工厂'AdministradorMarcador'提供的服务。
函数ManejadorEventosVista(){}
但是当我想在这部分代码中使用工厂'AdministradorMarcador'时,工厂无法识别。
ManejadorEventosVista.prototype.seleccionarMarcadorOrigen = function(){ AdministradorMarcador.setTipoMarcador(AdministradorMarcador.MARCADOR_ORIGEN); };
如何使用工厂 'AdministradorMarcador'在ManejadorEventosVista.prototype.seleccionarMarcadorOrigen ?? ..
帮助或示例指导我?? ..谢谢..
答案 0 :(得分:1)
ManejadorEventosVista
需要接受一个参数,你将能够引用函数内部的AdministradorMarcador
作为你命名的第一个变量。像这样
function ManejadorEventosVista(AdministradorMarcador){/**your code here**/}
您对线段['AdministradorMarcador', ManejadorEventosVista]
所做的是声明您的函数取决于AdministradorMarcador
,但没有向ManejadorEventosVista
提供参数,AngularJS并不知道你是怎么做的打算在控制器中引用AdministradorMarcador
。
这样做是为了允许AngularJS脚本缩小,尤其是已经存在的解决方案,因为它们会将您的函数变量更改为单个字母名称,从而使AngularJS无法确定要注入的服务或工厂。注释使用字符串和基于位置的排序,以允许您的脚本工作,即使在缩小之后,因为字符串不会被该过程改变。