从angular开始,我试图从服务器获取数据,然后使用$ resources回复修改。
除了“保存”功能外,它工作正常。没有数据被发回服务器。
这是html
<div ng-controller="myCtrl">
<div ng-repeat="obj in objs">
<h2>{{obj.data_1}}</h2>
<h3>{{obj.data_2}}</h3>
<input type='text' ng-model="obj.data_1"><br/>
<textarea ng-model="obj.data_2" required></textarea><br/>
<button ng-click="save()">Save</button>
</div>
</div>
service.js
'use strict';
angular.module('App.services', ['ngResource']).
factory('Obj', function($resource){
return $resource('url/to/json');
});
controller.js:
'use strict';
angular.module('App.controllers', []).
controller('myCtrl', ['$scope', 'Obj', function($scope, Obj) {
$scope.objs = Obj.query();
$scope.save = function() {
$scope.objs.save();
}
}]);
你知道为什么在我保存的时候没有回复的内容吗?
答案 0 :(得分:0)
是否应该为POST声明为GET声明的另一个$resource
?每个$resource
都指定特定的REST服务。
//services.js
'use strict';
angular.module('App.services', ['ngResource'])
.factory('GetObj', function($resource){
return $resource('url/to/json');
}
.factory('SaveObj', function($resource){
return $resource('url/to/post');
});
//controller.js
'use strict';
angular.module('App.controllers', []).
controller('myCtrl', ['$scope', 'GetObj', 'SaveObj', function($scope, GetObj, SaveObj) {
$scope.objs = Obj.query();
$scope.save = SaveObj.save(objs, function(resp) {
//Callback
console.log("Response from POST: %j", resp);
}
}]);
答案 1 :(得分:0)
在$ resource对象上使用查询方法意味着返回如下'query': {method:'GET', isArray:true}
这意味着您的$scope.objs
是一个对象数组而不是一个对象,并且根据您可以使用下面的元素数量符号:
$scope.objs[i].save()
其中i是数组中元素的索引,例如,如果您返回如:
[ {id:1, name:'Some name', age:35} ];
然后是您的代码:$scope.objs[0].save()
修改强> 我创造了一个插件,也许它会帮助你... http://plnkr.co/edit/62iPCAUNjV0oJROhul1G