有人可以帮助我解开这个谜团。
我的第一个$资源返回一个列表。 然后,我遍历列表并为集合中的每个对象调用另一个$ resource。 这段代码使用$ http工作,但我被告知我应该使用$资源进行休息,你就去了,我被卡住了。
我收到错误:AngularJS Object#没有方法'push'
我的restful服务返回一个JSON对象:
在我的服务/工厂:
services.factory('XXXXFactory', function ($resource) {
return $resource('/xxxx-webapp-1.0-SNAPSHOT/restful/services/XXXOption/actions/listAll/invoke', {}, {
query: { method: 'GET', isArray: true },
create: { method: 'POST' }
})
});
在我的控制器中:
app.controller('XXXXListCtrl', ['$scope', 'XXXXsFactory', 'XXXXXFactory', '$location',
function ($scope, XXXXsFactory, XXXXXFactory, $location) {
XXXXsFactory.query(function(data) {
// success handler
var resultType = data.resulttype;
var objects = data.result.value;
$scope.rowList= [];
console.log(objects);
alert('list? = '+ resultType);
if(resultType == "list"){
angular.forEach(objects, function (item) {
alert('item href = '+ item.href);
var InnerXXXXResource = $resource(item.href, {}, { query: { method: 'GET', isArray: true}});
InnerXXXXResource .query(function(rowdata) {
$scope.rowList.push(rowdata);
}, function(error) { });
});
}
}, function(error) {
// error handler
});
}]);
HTML:
<tbody>
<tr ng-repeat="row in rowList">
<td width="70%">{{row.members.XXXDescription.value}}</td>
<td align ="center" width="30%">{{row.members.price.value}}</td>
</tr>
</tbody>
答案 0 :(得分:0)
如果要将数据发布到服务器和客户端:
因此,在您的控制器中,您应该使用您的工厂获取数据
$scope.data = XXXXFactory.query();
如果您正在处理对象,请更改isArray: false
并将数据发布到服务器
$scope.createInventory = function(){
XXXXFactory.create($scope.newdata); // posts data to server side
$scope.data.objects.push($scope.newdata); //posts data to client side
$scope.newdata = '';
};