Angularjs 从不同文件链接服务

Angularjs 从不同文件链接服务,angularjs,service,Angularjs,Service,我有以下代码: JS: 在DataStoreService.js中: var myApp = angular.module('app'); myApp.factory('dataStoreService', ['$rootScope', function ($rootScope) { var service = { model: { name: '', email: '' }, Save

我有以下代码:

JS:

在DataStoreService.js中:

var myApp = angular.module('app');
myApp.factory('dataStoreService', ['$rootScope', function ($rootScope) {

    var service = {

         model: {
            name: '',
            email: ''
       },

        SaveState: function () {
             sessionStorage.userService = angular.toJson(service.model);
        },

        RestoreState: function () {
            service.model = angular.fromJson(sessionStorage.userService);
       }
    }

     $rootScope.$on("savestate", service.SaveState);
     $rootScope.$on("restorestate", service.RestoreState);

    return service;
   }]);
但是,我得到了以下错误:

$injector/nomod?p0=数据存储服务-模块“数据存储服务”不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数

我如何解决它?如何将不同文件中的不同控制器和服务链接到我的应用程序

var myApp = angular.module('app',['ngDropdowns']);
您不需要将
'dataStoreService'
定义为此处的依赖项,它不是
模块
它只是
服务
,因此如果您需要
控制器内的
服务
将其注入
控制器
,如下所示

 myApp.controller('myCtrl', function($scope,dataStoreService) { ....

将其注入控制器而不是应用程序:

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

myApp.controller('myCtrl', ['$scope', 'dataStoreService', function($scope, dataStoreService) { ....

app.js

// Declare the main module
var myApp = angular.module('myApp', []);
myApp.controller('Ctrl1', ['$scope', 'MyService', '$window', function($scope, MyService, $window) {

    var str = MyService.getHello();
    $window.alert(str);
}]);
angular.module('myApp').
    service('MyService', function() {



        return {
          getHello: function () {
                    return 'hello';
                },

        }
    }
);
aService.js

// Declare the main module
var myApp = angular.module('myApp', []);
myApp.controller('Ctrl1', ['$scope', 'MyService', '$window', function($scope, MyService, $window) {

    var str = MyService.getHello();
    $window.alert(str);
}]);
angular.module('myApp').
    service('MyService', function() {



        return {
          getHello: function () {
                    return 'hello';
                },

        }
    }
);
index.html

<!DOCTYPE html>
<html ng-app="myApp">
  <head>

  </head>
  <body>

    <p>An example showing how to share data between controllers using a service</p>    
    <div ng-controller="Ctrl1">
        <h2>Controller 1 Says:</h2>
    </div>

    <script src="http://code.angularjs.org/1.2.1/angular.js"></script>
    <script src="app.js"></script>
    <script src="aService.js"></script>
  </body>

</html>

显示如何使用服务在控制器之间共享数据的示例

控制员1说:
我已将其更改为-var myApp=angular.module('app',['ngDropdowns');和app.controller('myCtrl',['dataStoreService',function($scope){..}和上面的常用服务文件一样。仍然存在相同的错误。请注意,我希望服务在一个单独的js文件中。你能创建一个plnkr吗?我创建了一个简单的服务,其中控制器调用一个单独的服务来提醒一声你好:我在上面的plnkr中看不到任何单独的文件、服务或警报!你确定吗?第二个plnkr不是第一个:,我再打开它,它就会在那里工作