Службы в angularJS не работают в контроллере

У меня есть простой сервис в моем приложении.

var app = angular.module("appTest", []);
app.service('AuthService', function ($scope) {
$scope.write = function(){
    console.info("service")
};
});

И я хочу использовать его в своем контроллере

var app = angular.module('appTest');
app.controller("LoginController", ['$scope', '$http', '$cookies', 
'$cookieStore', '$rootScope', '$location',
function ($scope, $http, $cookies, $cookieStore, $rootScope, $location, 
AuthService) {

AuthService.write();

}]);

Но у меня ошибка http://prntscr.com/mckff7

Я сделал свою службу на всякий случай. Результат тот же.

Я добавляю свой сервис таким образом http://prntscr.com/mckgrt

Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Директивы позволяют расширять HTML новыми элементами и атрибутами и даже создавать собственные структурные директивы для манипулирования DOM. С...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
0
0
38
1

Ответы 1

Вы не «вводите» AuthService в свой контроллер. Вы получаете его как объект, но вам также нужно объявить его в массиве строк, чтобы он действительно был введен.

Код вашего контроллера должен выглядеть так:

var app = angular.module('appTest', []);

app.service('AuthService', function ($scope) {
  $scope.write = function(){
        console.info('hello world');
  };
});

app.controller("LoginController", ['$scope', '$http', '$cookies', 
    '$cookieStore', '$rootScope', '$location', 'AuthService',
    function ($scope, $http, $cookies, $cookieStore, $rootScope, $location, 
    AuthService) {

        AuthService.write();

}]);

Это не тот результат, это другая ошибка. Это потому, что я не копировал код для контроллера AuthService, поэтому он не был определен. Я создал для вас рабочий jsfiddle: jsfiddle.net/e4k9sy31/4

gillyb 28.01.2019 09:28

Также исправил мой код в ответе, чтобы он был полным рабочим примером.

gillyb 28.01.2019 09:29

Тот же результат. Я добавил старую версию angularJS, и результат тот же. Я создаю новый простой проект на ядре .net и пытаюсь вызвать службу на app.run. Вот ссылка. Если увидишь, будет круто! Спасибо! drive.google.com/open?id=1Dg8zcGEySUU8UbsL339B-gZgr7QrsNDF

FX_Sektor 30.01.2019 17:27

Извините, но я не собираюсь скачивать файл 'rar' и пытаться запускать его локально - в любом случае код .net не имеет к этому никакого отношения. Попробуйте извлечь соответствующие части вашего кода в «jsfiddle» (как я сделал), и тогда я смогу помочь вам понять, в чем ваша проблема.

gillyb 31.01.2019 21:08

Другие вопросы по теме