连接到模块的自定义服务在作为使用$ inject

时间:2018-04-09 00:02:48

标签: angularjs service dependency-injection

  • Angularjs noob。
  • 尝试按照github style guide按照控制器语法。
  • 意识到需要使用例如

    注册所有控制器
    app.controller("Example1Ctrl", Example1Ctrl );
    
    app.controller("Example2Ctrl", Example2Ctrl );
    

    在将$ inject设置为一系列服务,指令等之前

     Example1Ctrl.$inject = ['$scope']
    

我正在尝试引入自己的自定义服务[从控制器中获取业务逻辑等]。

但是,我无法使用"将$ inject设置为一系列服务来加入自定义服务"控制器的语法。

作为一个相对简单的练习,我已将[自定义服务]的W3Schools工作示例复制到Plunker

我的替代方案"将$ inject设置为一系列服务"语法在底部注释掉。

我希望能够使用这种控制器语法,因为我已经启动了一些需要逻辑从控制器转移到服务中的项目。

我对任何解决方案持开放态度 - 包括对方法的一般改变:只要它是最新的等等。

希望有人可以提供帮助

1 个答案:

答案 0 :(得分:0)

我注意到我对这个W3Schools示例的改编有误:

在我的“设置$ inject到服务数组”语法的控制器中,我复制了服务的内容:

th.myFunc = function (x) {
        return x.toString(16);

不使用服务调用 [hexafy]替换控制器属性定义[hex]及其常驻方法 [myFunc]:

th.hex = hexafy.myFunc(255);

这样做可以让我在控制器的首选“设置$ inject到服务数组”语法中包含[并利用]服务。

对于任何有兴趣的人

,我已将修改后的“答案”放入新的Plunker