代码之家  ›  专栏  ›  技术社区  ›  OtoLeo

如何从控制器调用角度服务?

  •  1
  • OtoLeo  · 技术社区  · 9 年前

    我有一个带以下代码的角度模块:

    angular.module('sampleModule', [])
    
    .service('myService', [function () {
        this.showAlert = function () {
            alert("Hello");
        };
    
        this.sum = function (a, b) {
            return a + b;
        };
    }])
    
    .controller('SampleCtrl', ['myService', '$scope', function ($scope, myService) {
        this.doSum = function () {
            var result = myService.sum(1, 2);
            alert(result);
        };
    }]);
    

    当我调用doSum时,我得到:

    类型错误:myService。sum不是函数

    有什么想法吗?谢谢

    2 回复  |  直到 9 年前
        1
  •  3
  •   kukkuz    9 年前

    控制器DI错误-请注意参数的顺序:

    .controller('SampleCtrl', ['$scope', 'myService', function ($scope, myService) {
        this.doSum = function () {
            var result = myService.sum(1, 2);
            alert(result);
        };
    }]);
    
        2
  •  1
  •   Suneet Bansal    9 年前

    注射顺序问题不正确$范围应位于myService之前。

    Correct code:
    .controller('SampleCtrl', ['$scope', 'myService', function ($scope, myService) {
        this.doSum = function () {
            var result = myService.sum(1, 2);
            alert(result);
        };
    }]);