Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 AngularJS如何将RESTful与factory模块一起使用_Javascript_Angularjs_Factory_Angular Resource - Fatal编程技术网

Javascript AngularJS如何将RESTful与factory模块一起使用

Javascript AngularJS如何将RESTful与factory模块一起使用,javascript,angularjs,factory,angular-resource,Javascript,Angularjs,Factory,Angular Resource,我在编写RESTful代码时遇到了一个错误,持续了2个小时 我有一个文件,这里有一个控制器 angular.module('orderToBeShippedApp',['ng','projectService']) .controller('orderCtrl',function($scope, Project){ Project.query(function(data){ alert(data); $scope.pro

我在编写RESTful代码时遇到了一个错误,持续了2个小时

我有一个文件,这里有一个控制器

angular.module('orderToBeShippedApp',['ng','projectService'])

    .controller('orderCtrl',function($scope, Project){

        Project.query(function(data){
            alert(data);
            $scope.projects = data;
        });

    });
这是我的宿命,叫做“项目”

angular.module('projectService',['ng','ngResource'])
   .factory('Project',function($resource){

      return $resource('api/url/:projectId.json',{},{
        query:{
          method:'get',
          params: {projectId:"test"},
          isArray: false
        }
      });

   });
我的html:

<div ng-controller = "orderCtrl" class ="col-sm-8 col-md-9">
    <!--Body content -->
    <div  ng-repeat = "project in projects">
        <h2>{{project.name}}</h2>
    </div>
</div>
它不会在浏览器上给我任何错误消息。工厂功能似乎有问题


有人能帮我修复它吗?

您应该根据您的模型定义将绑定更改为
name
,而不是
ProjectName

<div ng-controller = "orderCtrl" class ="col-sm-8 col-md-9">
<!--Body content -->
<div  ng-repeat = "project in projects">
    <h2>{{project.name}}</h2>
</div>
更新:

  • 删除“ng”依赖项
  • 将资源作为依赖项传递给控制器

    // resource
    angular.module('projectService',['ngResource'])
    .factory('Project',function($resource){
        return $resource('api/url/:projectId.json',{},{
            query:{
              method:'get',
              params: {projectId:"test"},
              isArray: false
            }
        });
    });
    // controller
    angular.module('orderToBeShippedApp',['projectService'])
    .controller('orderCtrl',['$scope','Project', function($scope, Project){
        Project.query(function(data){
            alert(data);
            $scope.projects = data;
        });
    }]);
    

  • 您的工厂可能没有给出控制台错误,但可能无法恢复数据。你的工厂应该是这样的:

    angular.module('projectService',['ng','ngResource'])
      .factory('Project',function($resource){
    
      return {
        projects: $resource('api/url/:projectId.json', {projectId: '@test'})
        }
      });
    }]);
    
    angular.module('orderToBeShippedApp',['ng','projectService'])
    
    .controller('orderCtrl',['$scope','Project',function($scope, Project){
    
         $scope.projects = Project.projects.get({id: 'test'});
    
    }]);
    
    在控制器中,它应调用如下方法:

    angular.module('projectService',['ng','ngResource'])
      .factory('Project',function($resource){
    
      return {
        projects: $resource('api/url/:projectId.json', {projectId: '@test'})
        }
      });
    }]);
    
    angular.module('orderToBeShippedApp',['ng','projectService'])
    
    .controller('orderCtrl',['$scope','Project',function($scope, Project){
    
         $scope.projects = Project.projects.get({id: 'test'});
    
    }]);
    
    更新:

    要释放chrome xmlHttpRequest错误,您需要从计算机的chrome.exe文件夹运行以下命令:

    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files --disable-web-security
    

    很抱歉,我把代码简化了,这是我的错误。因为我的原始代码需要project.ProjectName。但我的问题是我甚至不能查询这个项目。它是空的。我还添加了角度资源。我没有收到任何错误消息。“项目”工厂模块没有问题。问题尚未解决。projectName是我的错误,不是问题。这解决了问题吗?在chrome的“网络”选项卡中,它试图访问的url是什么?在chrome上,我发现XMLHttpRequest无法加载错误。所以我改用firefox。我在网络上没有得到任何URL。我已经更新了我的答案以帮助您克服这个xmlHttpRequest错误。这可能是运行服务器的主要问题,您有什么样的错误-请分享更多详细信息。更改名称方法以获取