首页 文章

以角度注入控制器中的工厂

提问于
浏览
0

我试图在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 回答

  • 1

    ManejadorEventosVista 需要接受一个参数,你可以在函数内部引用 AdministradorMarcador ,就像你命名第一个变量一样 . 像这样

    function ManejadorEventosVista(AdministradorMarcador){/**your code here**/}
    

    您正在使用行片段 ['AdministradorMarcador', ManejadorEventosVista] 声明您的函数依赖于 AdministradorMarcador ,但没有为 ManejadorEventosVista 提供参数,AngularJS不知道您打算如何在控制器中引用 AdministradorMarcador .

    这样做是为了允许AngularJS脚本缩小,特别是通过现有的解决方案,因为它们会将函数所使用的变量更改为单个字母名称,从而使AngularJS无法确定要注入的服务或工厂 . Annotation使用字符串和基于位置的排序来允许您的脚本工作,即使在缩小之后也是如此,因为进程不会更改字符串 .

    另见Latest Stable docs on Annotation

相关问题