我想將對象複製到循環中的另一個對象。但是在迭代過程中,複製的對象被循環中的最後一個對象覆蓋。我的代碼看起來像Angular JS覆蓋循環中複製的對象
$scope.createDashboradsforeachTab = function(dashboardData, eachTab) {
var dashboardslayoutArray = eachTab.dashlettes;
dashboardData.dashletteBeansList = eachTab.dashlettes;
angular.forEach(dashboardslayoutArray,function(dashboardslayout) {
dashboardData.dashletteBeansList = [];
dashboardData.dashletteBeansList[0] = dashboardslayout;
var dashletteIdInTab = dashboardslayout.dashletteId;
if (dashboardslayout.dashletteId == 12) {
$scope.dashboardDataForDrillDown = {};
$scope.dashboardDataForDrillDown = angular.copy(dashboardData);
}
//Rest of my code here
});
}
您可以清楚地看到現在eachTab包含一組dashlettes。現在我通過每個dashlette迭代,而迭代我將dashlette對象分配給dashboardData對象。雖然迭代iam將dashboardData對象複製到另一個面向dashlette id 12的對象。如同現在現在它被正確複製我已經在調試中進行了檢查。在下一次迭代中,dashlet的id是13,我將它分配給dashboardData對象。現在我的複製對象也受到新的dashlette(13)對象的影響。請幫我解決這個問題,如何停止覆蓋複製的對象。
可能會在DashboardsDataService.getTabDetails(dashboardData)調用上面應用一個檢查,以便僅針對特定條件調用它。 –
Actucally該方法調用每個選項卡中的每個儀表板。如果我的選項卡包含4個儀表板,則必須調用4次才能從後端獲取每個儀表板數據。但是每個儀表板的dashboardData對象都不相同。在調用服務之前,僅在每個選項卡中根據儀表板類型更改了儀表板數據對象。 –