多次元オブジェクトまたは配列をAngular/JSで作成する方法を理解する必要があります。このJSFiddleは、問題をはっきりと説明する必要があります。https://jsfiddle.net/s3etbdyj/5/多次元/ネストされたオブジェクトを角度(ネストされたforEachループ)で作成する
forEachループ内のforEachループはどうやってできますか?要約すると:
私のアプリケーションには表示しやすいデータがあります。
"albums":[{
"album_id": 1,
"album_title": "Test Release",
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"songs": [{
"id": 114,
"title": "Test song",
}, {
"id": 115,
"title": "Test song 2",
}],
}, {
"album_id": 2,
"album_title": "Blood Sugar Sex Magik",
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"songs": [{
"id": 116,
"title": "Give It Away",
}, {
"id": 117,
"title": "Under The Bridge",
}],
}]
あなたが見ることができるように、それぞれの「アルバム」オブジェクトは、その中にいくつかの「歌」のオブジェクトを持つことができます。
私は、このデータをループする必要があると(私は物事を追加し、私は合うようにそれをフォーマットすることができるように)それを再構築
私は、この構造では、ネストされたオブジェクトデータを作成するにはどうすればよいですか?これまで私が持っていたことは次のとおりです。
$scope.newData = [];
// create formatted song list
angular.forEach($scope.origData, function(m) {
$scope.newData.push({
'album_id' : m.album_id,
'album_title' : m.album_title,
});
angular.forEach(m.songs, function(tr) {
var obj = {
id: tr['id'],
title: tr['title'],
}
$scope.newData.push(obj);
});
}, $scope.newData)
しかし、これはうまくいきません。これは、フラットな構造を作成します。
Object:
{
"album_id": 1,
"album_title": "Test Release",
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
}
Object:
{
"id": 114,
"title": "Test song",
}
Object:
{
"id": 115,
"title": "Test song 2",
}
etc...
はJSfiddleを見てください:https://jsfiddle.net/s3etbdyj/5/ は、誰もがこのようにネストされたオブジェクトの作成方法を説明し、私のあるnewDataはちょうど私のorigDataのように見せることができます!おかげさまで
so。あなたはどこで曲をプッシュしていますか?現在、あなたはアルバムをプッシュしている同じレベルにプッシュしています。 –
私は欲しいそれぞれのアルバム内の "曲"というオブジェクトにそれらをプッシュする。しかし、私は文法を正しく得ることができない! – Leon