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 
    } 

    }); 

为什么没有我得到的Hello World而是镀铬开发人员工具说:ReferenceError:我的服务没有定义

回答

3

你需要纠正一些东西

  1. 不要在html页面上重新创建myApp模块,这会破坏模块的旧注册组件。请使用由services.js创建的现有myApp模块。

    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) {