0

это мой HTML:не может получить доступ к угловому обслуживанию от внешнего JS файла

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 

</head> 
<body> 
<script type="text/javascript" src="services.js"></script> 
<div ng-app="myApp" ng-controller="myCtrl2"> 
    hello {{x}} 
</div> 
<script> 
    var app=angular.module("myApp", []); 
    app.controller("myCtrl2", ['$scope','$location', function($scope, $location) { 
    myService.set("world"); 
    $scope.x=myService.get(); 
    }]); 
</script> 
</body> 
</html> 

и это мой services.js файл:

var app=angular.module("myApp", []); 
    app.factory('myService', function() { 
    var savedData = {} 
    function set(data) { 
     savedData = data; 
    }main.html 
    function get() { 
     return savedData; 
    } 

    return { 
     set: set, 
     get: get 
    } 

    }); 

почему я не получаю привет мира, но вместо хрома разработчики инструмента говорят: ReferenceError: MYSERVICE не определен

ответ

3

Вам нужно исправить несколько вещей

  1. Не воссоздавайте модуль myApp на странице html, который уничтожит старый зарегистрированный компонент модуля. Вместо этого используйте существующий модуль myApp, созданный services.js.

    var app=angular.module("myApp", []); 
    

    должен быть

    var app=angular.module("myApp"); 
    
  2. ли вводить услугу, прежде чем использовать его в контроллер.

    app.controller("myCtrl2", ['$scope','$location', 'myService', 
        function($scope, $location, myService) { 
    
-1

вам необходимо внедрить услугу в контроллере

var app=angular.module("myApp", []); 
app.controller("myCtrl2", ['$scope','$location','myService', function($scope, $location,myService) { 
    myService.set("world"); 
    $scope.x=myService.get(); 
}]); 
0

Вы должны вводить услугу в контроллер.

app.controller("myCtrl2", ['$scope','$location', function($scope, $location,myService) { 
Смежные вопросы