2014-10-06 2 views
1

Я новичок в 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) 

я что-то отсутствует и не может найти что. Любая помощь приветствуется! Спасибо :-)

ответ

1

Кажется, вам нужно обернуть MathService в одинарные кавычки, а затем положить в `функции ($ рамки, ... MathService ... 'а.

myControllers.controller('catalogCtrl', ['$scope', '$routeParams', 'MathService', '$http', function($scope, $routeParams, MathService, $http) { 

console.log(MathService.add(4,5)); 

}]) ;

+0

действительно, спасибо! – Jem

+1

@Jem Отлично, я рад, что помог, вы должны, вероятно, отметить ответ, как принято. – developer10

1

вы забыли передать MathService в свою функцию, и вы пропустили одинарные кавычки.

myControllers.controller('catalogCtrl', ['$scope', '$routeParams', `MathService`, '$http', 
    function($scope, $routeParams, MathService, $http) { 
     console.log(MathService.add(4,5)); 
}]); 
+0

действительно, спасибо! – Jem

Смежные вопросы