如何从控制器调用 angular 服务?
How can I invoke an angular service from a controller?
我有一个包含以下代码的 angular 模块:
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);
};
}]);
注射顺序不正确的问题。 $scope 应该在 myService 之前。
Correct code:
.controller('SampleCtrl', ['$scope', 'myService', function ($scope, myService) {
this.doSum = function () {
var result = myService.sum(1, 2);
alert(result);
};
}]);
我有一个包含以下代码的 angular 模块:
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);
};
}]);
注射顺序不正确的问题。 $scope 应该在 myService 之前。
Correct code:
.controller('SampleCtrl', ['$scope', 'myService', function ($scope, myService) {
this.doSum = function () {
var result = myService.sum(1, 2);
alert(result);
};
}]);