我有一個服務返回這個簡單的JSON:爲什麼AngularJS json數據嵌套?
{
"successYN": true,
"msg": "Success!",
"errors": null
}
我有這樣的控制器:
app.controller('formController', function ($http, $httpParamSerializerJQLike) {
var frmVM = this
frmVM.formData = {}
frmVM.frmSubmit = function() {
console.log('form was submitted with: ' + frmVM.formData.name + ' ' + frmVM.formData.superheroAlias)
// post the data to the back end
$http({
method: 'POST',
url: '/contact-post',
data: $httpParamSerializerJQLike(frmVM.formData), // pass in data as strings
headers: { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.then(function (data) {
console.log(data);
var innerData = data.data;
console.log(innerData)
console.log(innerData.errors)
console.log(innerData.successYN)
if (!innerData.successYN) {
console.log("Not successful!")
// if not successful, bind errors to error variables
frmVM.errorName = innerData.errors.name;
frmVM.errorSuperhero = innerData.errors.superheroAlias;
} else {
// if successful, bind success message to message
frmVM.message = innerData.msg;
}
});
};
})
我在我的形式controller as
語法和一切工作正常。但是,我看到在 數據對象是這樣的:
因此,該數據具有這樣的被訪問:
var innerData = data.data;
之前,我可以訪問數據:
任何人都可以解釋爲什麼發生這種情況和/或我做錯了什麼?
你沒有做錯什麼。這是來自AngularJS中http請求生成器的響應。它添加了一些響應標題,關於請求的信息以及從服務器檢索到的「數據」。它將數據存儲在一個'data'對象中,您可以從json文件 – Jer
中訪問JSON對象鍵謝謝,您應該將此作爲答案,因爲它可以最好地解釋發生的事情。 –