我是Angular.js的新手,在定义自定义服务时遇到困难。我按照https://docs.angularjs.org/tutorial上的教程进行了操作。
我的app.js:
var myApp = angular.module('myApp', [
'ngRoute',
'myControllers',
'myFilters',
]);
我的services.js:
myApp.service('MathService', function() {
this.add = function(a, b) { return a + b };
this.subtract = function(a, b) { return a - b };
this.multiply = function(a, b) { return a * b };
this.divide = function(a, b) { return a / b };
});
我的controllers.js:
var myControllers = angular.module('myControllers', []);
myControllers.controller('catalogCtrl', ['$scope', '$routeParams', MathService, '$http',
function($scope, $routeParams, $http) {
console.log(MathService.add(4,5));
}
]);
在调用MathService.add(4,5)之前,一切正常。
错误:
Uncaught ReferenceError: MathService is not defined controllers.js:8(anonymous function)
我错过了一些东西而无法找到答案。欢迎任何帮助!谢谢: - )
答案 0 :(得分:1)
似乎你需要将MathService
包装在单引号中然后放入`函数($ scope,... MathService ......'以及。
myControllers.controller('catalogCtrl', ['$scope', '$routeParams', 'MathService', '$http', function($scope, $routeParams, MathService, $http) {
console.log(MathService.add(4,5));
}]);
答案 1 :(得分:1)
您忘了将MathService
传递给您的函数,而且您也错过了单引号。
myControllers.controller('catalogCtrl', ['$scope', '$routeParams', `MathService`, '$http',
function($scope, $routeParams, MathService, $http) {
console.log(MathService.add(4,5));
}]);