为什么我在这个AngularJS代码中遇到“无法准备好属性”错误?

时间:2017-05-01 11:31:54

标签: javascript angularjs json

我有两个相互关联的功能。我附上了responseData

格式的截图

Screenshot 1

function checkScenario(responseData) {
        // lines of code //
        doThisThing(responseData.tblBooking);
}


function doThisThing(data) {
        console.log(JSON.stringify(data));   // works fine
        console.log(JSON.stringify(data.tblBooking.tblVehicleType.vehicleTypeCode));   // error
        $scope.tripData = data;
        console.log(JSON.stringify($scope.tripData));  // works fine
        $scope.tripDataVehicleType = data.tblBooking.tblVehicleType.vehicleTypeCode;
        console.log(JSON.stringify($scope.tripDataVehicleType));  // error in this line

}

我的意思是在存储从$ scope.tripData中的前一个函数传递的整个数据之后,我想得到data.tblBooking.tblVehicleType.vehicleTypeCode的值。我试图以两种方式获取数据,直接与最后一行和也可以通过存储在范围变量中。我在两种情况下都会收到错误。

我想像这样实现一个if块 -  tblBooking.tblVehicleType.vehicleTypeCode ==='1'

我犯了错误。

1 个答案:

答案 0 :(得分:1)

由于您已使用responseData.tblBooking

将有效负载发送到第二个方法
function checkScenario(responseData) {
  // lines of code //
  doThisThing(responseData.tblBooking);
}

此处提供的属性是tblBooking中嵌套的属性,例如data.tblVehicleType,如:

function doThisThing(data) {
   console.log(JSON.stringify(data));
   console.log(JSON.stringify(data.tblVehicleType.vehicleTypeCode)); 
   $scope.tripData = data;
   console.log(JSON.stringify($scope.tripData));
   $scope.tripDataVehicleType = data.tblVehicleType.vehicleTypeCode;
   console.log(JSON.stringify($scope.tripDataVehicleType));    
}