-1
중첩 된 $resource
을 만드는 방법을 알아 내려고하고 있습니다. 나는 다음과 같은 것을 생각해 낸다. 누군가를 바라는 것은 올바른 방향으로 나를 가리킬 수 있습니다.
내 데이터 구조는 다음과 같습니다
allData = [{
id:1,
info:'someinfo',
foo :'foobar',
bar : {...},
baz : [{...}, {...}, {...}]
},
{id:2, ...},
{id:3, ...}
];
가 나는 $resource
객체로 allData
에서 각 개체를하고 싶습니다. 나는 또한 baz
배열의 각 객체가 $resource
객체이기를 원합니다. 내가 가지고 올 것을
은 다음과 같습니다
var InfoService = angular.module('InfoServices', ['ngResource']);
// The inner resource
InfoService.factory('Baz', ['$resource',
function($resource) {
var baz = $resource('/server/baz', {});
// custom baz methods
baz.prototype.getBaz = function() {};
return baz;
}]);
// Outer resource
InfoService.factory('Info', ['$resource',
function($resource) {
var info = $resource('/server/info', {});
// custom data methods
info.prototype.getInfoStats = function() {};
return info;
}]);
// Array of resources.
InfoService.factory('AllInfo', ['$resource','Info', 'Baz',
function($resource,Info,Baz) {
var resource = $resource('/server/allinfo', {},
{ query : {
method:'get',
isArray:true,
transformResponse:function(data) {
var allinfo = JSON.parse(data);
for (var i=0;i<allinfo.length;i++) {
allinfo[i] = new Info(allinfo[i]);
for (var j=0;j<allinfo[i].baz.length;j++) {
allinfo[i].baz[j] = new Baz(allinfo[i].baz[j]);
}
}
return allinfo;
}
});
return resource;
}]);
내가 지독하게 잘못 said..seems 마찬가지로, 위 달성에 각 방법은 무엇입니까?
모든 속성이'resource' 일 필요는 없지만 배열의 각 객체는 좋을 것입니다. 왜냐하면 내 컨트롤러에서'$ scope.info [0] .baz [1]. $ save'을 수행 할 수 있었고 전체'$ scope.info' 객체를 전선으로 보낼 필요가 없었기 때문입니다. 말이 돼? 저는 앵귤러를 처음 접했으므로 여러분이 볼 수있는 것처럼 고민하고 있습니다. 나는 당신의 제안을 시도하고 그것이 나를 위해 작동하는지 확인합니다. – fbynite
글쎄, 그것은 얼마나 많은 데이터를 저장하고 있는지, 얼마나 자주, 그리고 타겟 (데스크톱 또는 모바일)이 무엇인지에 달려 있습니다. 나는 이러한 접근법이 이러한 요인들에 따라 매우 다를 수 있음을 안다. 아직도, 나는 몇 달 동안 만 webapps를 프로그래밍 해왔다. 그래서 나는 신참이다. 나는 그 의미에서 정말로 신뢰할만한 조언을 줄 수 있다고 생각하지 않는다. :) – link