Javascript AngularJS如何将RESTful与factory模块一起使用
我在编写RESTful代码时遇到了一个错误,持续了2个小时 我有一个文件,这里有一个控制器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
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>
更新:
// 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错误。这可能是运行服务器的主要问题,您有什么样的错误-请分享更多详细信息。更改名称方法以获取