Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试将服务链接到控制器时出现角度问题_Javascript_Html_Angularjs_Apache Tiles - Fatal编程技术网

Javascript 尝试将服务链接到控制器时出现角度问题

Javascript 尝试将服务链接到控制器时出现角度问题,javascript,html,angularjs,apache-tiles,Javascript,Html,Angularjs,Apache Tiles,我正在尝试使用Angularjs开发一个web应用程序,我可以成功地实现ui路由器框架,并且模板和控制器都正确加载,但是当我遇到无法摆脱的错误时,控制器调用服务并在那里(https://docs.angularjs.org/error/$injector/unpr?p0=HomeServiceProvider%20%3C-%20HomeService%20%3C-%20HomeController)。我正在按以下顺序导入js文件: 一次服务 双控制器 3-main应用程序 此外,这里还有一个ht

我正在尝试使用Angularjs开发一个web应用程序,我可以成功地实现ui路由器框架,并且模板和控制器都正确加载,但是当我遇到无法摆脱的错误时,控制器调用服务并在那里(
https://docs.angularjs.org/error/$injector/unpr?p0=HomeServiceProvider%20%3C-%20HomeService%20%3C-%20HomeController
)。我正在按以下顺序导入js文件:

一次服务 双控制器 3-main应用程序

此外,这里还有一个html代码(代码在单击状态之后)。js文件如下所示:

home-app.js

'use strict';

angular.module("home", ['ui.router', 'home.controllers'])

    .config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){

        $stateProvider
                .state('introduccion', {
                    url : "/",
                    templateUrl : "resources/js/home/views/introduccion.html",
                    controller : "HomeController"
                })
}]);
home-service.js

'use strict';

angular.module('home.services',['ngResource'])

    .factory('HomeService', ['$http', '$q', function($http, $q){

        return {

            prueba: function() {
                return $http.get('http://localhost:8081/home/prueba').then(

                    function(response){
                        return response.data;
                    }, 

                    function(errResponse){
                        console.error('Error while prueba');
                        return $q.reject(errResponse);
                    }
                );
            }
        };
    }]);
home-controller.js

'use strict';

angular.module("home.controllers", [])

    .controller('HomeController', ['$scope', 'HomeService', function($scope, HomeService) {
              var self = this;
              self.text = null;

              self.prueba = function(){
                  HomeService.prueba().then(



                   function(data) {
                        self.text = data;
                   },

                   function(errResponse){
                        console.error('Error while Prueba');
                   }
              );
          };
}]);
欢迎大家帮忙!!!谢谢

编辑我按照建议更改了传递home.service的home应用程序,并尝试将其放置在home控制器上,但在这两种情况下,我都遇到了相同的错误:未能实例化模块home,原因是:

Error: [$injector:modulerr] http://errors.angularjs.org/1.5.5/$injector/modulerr?p0=h...)
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:6:412
at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:40:134
at q (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:7:355)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:39:222)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:39:391
at q (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:7:355)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:39:222)
at bb (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:43:246)
at c (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:21:19

我还创建了一个JSFIDLE:


编辑我发现了一些有趣的东西,我用一个虚拟服务替换了服务js,没有ngResource依赖性,并且没有错误!!

在home-app.js中添加模块home.services,比如:

    angular.module("home", ['ui.router','home.controllers','home.services'])
而不是:

angular.module("home", ['ui.router', 'home.controllers'])
您需要在应用程序中下载文件,以将
ngResource
作为依赖项注入
home.services
模块。需要在angular factory/service中使用
$resource
作为依赖项。我发现您没有在
home.services
模块中使用
ngResource
,您可以将
ngResource
作为依赖项删除我们的模块依赖性


然后,将控制器写为
angular.module(“home.controllers”,['home.services'])
。您需要在控制器模块中插入服务模块


查看此操作

将控制器编写为
angular.module(“home.controllers”,['home.services'])
。您需要在控制器模块中插入服务模块。这样做会引发另一个错误…请发布完整的错误消息。我编辑了文本,也许它可以帮助您,谢谢