2015-11-26 5 views
0

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

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

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

ответ

0

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

+0

ли изменения, но по-прежнему та же ошибка. Однако я смог решить проблему, удалив «$ scope» в качестве зависимости в службе «coreService». обновлено Ссылка - http://plnkr.co/edit/2zpnQ1tDbpzmHukL0739?p=preview – zilcuanu

+0

Да, забыл упомянуть об этом. $ scope никогда не вводится в службу. –

1

Я исправил ваш код, у вас там много ошибок. Take a look at 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 и установить переменные в корневой системе внутри службы? – zilcuanu

+0

Да, $ rootScope - это глобальная область, поэтому вы можете вводить ее в сервисы, но вы не можете сделать то же самое для $ scope. Однако, если вы хотите взаимодействовать с $ scope, вы можете передать его переменные службе как аргумент функций и изменить его и вернуть измененные данные. –

+0

Это тоже моя голова. новая вещь, узнанная сегодня. – NPToita

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