Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从控制器调用角度服务?_Javascript_Angularjs_Angularjs Service - Fatal编程技术网

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

Javascript 如何从控制器调用角度服务?,javascript,angularjs,angularjs-service,Javascript,Angularjs,Angularjs Service,我有一个角度模块,代码如下: angular.module('sampleModule', []) .service('myService', [function () { this.showAlert = function () { alert("Hello"); }; this.sum = function (a, b) { return a + b; }; }]) .controller('SampleCtrl', ['

我有一个角度模块,代码如下:

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时,我得到:

TypeError:myService.sum不是函数


有什么想法吗?谢谢

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

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

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

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

注射顺序不正确的问题$范围应该在myService之前

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

注射顺序不正确的问题$范围应该在myService之前

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

我怀疑顺序很重要,因为“myService”依赖于“$scope”,所以myService必须位于所需的$scope之后。这是否正确?我怀疑顺序很重要,因为“myService”依赖于“$scope”,所以myService必须位于所需的$scope之后。这是正确的吗?