невозможно внедрить пользовательский сервис внутри функции запуска приложения Angularjs

0

Я новичок в Angularjs и написал свой app.js который имеет определенную функцию run. У меня также есть настраиваемая служба, называемая coreService которую мне нужно вводить в функцию run. Когда я ввожу, я получаю сообщение об ошибке

Ошибка: [$ injector: unpr] Неизвестный поставщик: $ scopeProvider <- $ scope <- coreService http://errors.angularjs.org/1.4.7/ $ инжектор /unpr? P0 =% 24scopeProvider %20% 3C- %20% 24scope %20% 3C- %20coreService

Я использую генератор angularjs-fullstack yeoman для разработки приложения. Пожалуйста, дайте мне знать, где я ошибаюсь. Ссылка на Plnkr - Plnkr ссылка

Теги:
angularjs-service
angularjs-config

2 ответа

1

Я исправил ваш код, у вас там много ошибок. Взгляните на PLUNKER. Вы не можете вызвать $ scope внутри службы.

'use strict';

angular.module('myApp')
  .service('coreService', function () {
      var sayHi=function(){
        console.log("Hi..");
      }

      return {
        sayHi:sayHi
      }
  });





<!DOCTYPE html>

    <html>

      <head>
        <script data-require="[email protected]" data-semver="1.4.2" src="https://code.angularjs.org/1.4.2/angular.js"></script>
        <script src="https://code.angularjs.org/1.4.6/angular-route.js"></script>
        <link rel="stylesheet" href="style.css" />


      </head>

      <body ng-app="myApp">
        <h1>Hello Plunker!</h1>

        <script src="script.js"></script> 
        <script src="coreService.js"></script>
      </body>

    </html>

И переименуйте свой coreService в coreService.js

  • 0
    Спасибо за ответ. Я попытался внедрить rootScope внутри сервиса, и он начал работать. Означает ли это, что если мы хотим обновить некоторую переменную, которая будет использоваться в приложении, нам нужно внедрить rootScope и установить переменные в rootScope внутри Service?
  • 0
    Да, $ rootScope - это глобальная область, поэтому вы можете добавить ее в службы, но вы не можете сделать то же самое для $ scope. Однако, если вы хотите взаимодействовать с $ scope, вы можете передать его переменные в службу в качестве аргумента функций, изменить их и вернуть измененные данные.
Показать ещё 1 комментарий
0

Переименуйте coreService в coreService.js и включите coreService.js после script.js.

  • 0
    Внес изменения, но ошибка все та же. Однако я смог решить эту проблему, удалив $scope как зависимость в сервисе coreService . обновленная ссылка - plnkr.co/edit/2zpnQ1tDbpzmHukL0739?p=preview
  • 0
    Да, забыл упомянуть об этом. $ scope никогда не вводится в сервис.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню