我试图在Angular的控制器中注入一个工厂,但我做不到 . 这是我的代码 .
app.controller('ManejadorEventosVista',['AdministradorMarcador',ManejadorEventosVista]);
'app'是与模块相对应的变量,具有各自的依赖关系 . 控制器是'ManejadorEventosVista',需要工厂'AdministradorMarcador'提供的服务 .
功能ManejadorEventosVista(){}
但是当我想在这部分代码中使用工厂'AdministradorMarcador'时,工厂无法识别 .
ManejadorEventosVista.prototype.seleccionarMarcadorOrigen = function(){AdministradorMarcador.setTipoMarcador(AdministradorMarcador.MARCADOR_ORIGEN); };
如何在ManejadorEventosVista.prototype.seleccionarMarcadorOrigen中使用工厂'AdministradorMarcador'?
帮助或示例指导我?? ..谢谢..
1 回答
ManejadorEventosVista
需要接受一个参数,你可以在函数内部引用AdministradorMarcador
,就像你命名第一个变量一样 . 像这样您正在使用行片段
['AdministradorMarcador', ManejadorEventosVista]
声明您的函数依赖于AdministradorMarcador
,但没有为ManejadorEventosVista
提供参数,AngularJS不知道您打算如何在控制器中引用AdministradorMarcador
.这样做是为了允许AngularJS脚本缩小,特别是通过现有的解决方案,因为它们会将函数所使用的变量更改为单个字母名称,从而使AngularJS无法确定要注入的服务或工厂 . Annotation使用字符串和基于位置的排序来允许您的脚本工作,即使在缩小之后也是如此,因为进程不会更改字符串 .
另见Latest Stable docs on Annotation