Я хочу иметь возможность обновлять только определенные атрибуты в объекте, не перезаписывая остальные атрибуты в объекте. Я использую $ http.patch, чтобы попытаться достичь этого.
Я использую serivce для вызова моего метода GET для получения моей информации из API
app.factory('botReports', function ($http, $rootScope) {
return $http({
method: 'GET',
url: 'http://someCompany.corp/bot/BotReports'
}).then(function (user_data) {
return user_data.data;
}, function (error) {
alert('Error: Please Connect to the Vodacom Network');
});
});
// Это работает.
Далее я go перехожу на один из моих других контроллеров и отображаю данные в виде таблицы. Это работает. Вот проблема: Затем я пытаюсь обновить значение c в моем API, но затем он перезаписывает весь объект, а не просто изменяет один атрибут этого объекта. см. Здесь:
Следующий код все написан на одном и том же AngularJS Контроллере:
let nested = {
"PSI_Reviewer":username
}
let update = {
"processStep": JSON.stringify(nested)
}
Я должен был привести в порядок вложенную переменную, потому что она выдал JSON ошибок форматирования, если я не JSON .stringify их.
$http({
method: 'PATCH',
url: `http://someCompany.corp/bot/BotReports/11115`,
data: JSON.stringify(update)})
.then(function (response) {
if (response.data)
alert(`success! it was changed`);
});
console.log($scope.all[j].PSI_Reviewer);
console.log($scope.reportId[j]);
}
OUTPUT
Отлично находит идентификатор выбранной строки, но затем это делает что-то странное. Это изменило мою JSON структуру с
{
reportId: 11115
data: {
AveSpend: 1055
CellNo: 98459849
Channel: "VDLKO"
City: "Milnerton"
CreatedDate: 43922.2760069444
DealID: "DV2AL943"
Login: "SADMIN"
PSI_Reviewer: ""
}
}
На ЭТО
{
reportId: 11115
data: {
PSI_Reviewer: "tcoetzee"
}
}
, пока я ожидал этого:
{
reportId: 11115
data: {
AveSpend: 1055
CellNo: 98459849
Channel: "VDLKO"
City: "Milnerton"
CreatedDate: 43922.2760069444
DealID: "DV2AL943"
Login: "SADMIN"
PSI_Reviewer: "tcoetzee"
}
}
ПОЖАЛУЙСТА HELP.