无法阅读财产'描述' angularJs中未定义的

时间:2015-12-17 03:08:54

标签: angularjs

我通过以下方式从服务器获取客户详细信息对象,

enter image description here

我希望分配“种姓”的价值。对模型的描述。但我收到的错误是:无法读取属性'描述'未定义的

我有种姓'以下列方式详述对象,

//default object
$scope.personalDetailsObj = {
      "personalDetails": {        
        "title":"",
        "name":"",
        "fistNm":"",
        "lastNm":"",
        "caste":null
      }
    }

    $scope.casteList =  [
               {
                  "code": "0",
                  "description": "NOT APPLICABLE"
               },

               {
                  "code": "1",
                  "description": "SHARE CROPPERS"

               }
            ]

    $scope.personalDetailsObj.personalDetails = $scope.customerData.personalDetails; 

    $scope.personalDetailsObj.personalDetails.caste = $scope.casteList.filter(function(obj){return obj.code == $scope.personalDetailsObj.personalDetails.caste;})[0].description;

我正在尝试分配模型值

<input type="text" data-ng-model="personalDetailsObj.personalDetails.caste" name="caste"/>  

2 个答案:

答案 0 :(得分:0)

您正在根据以下条件过滤数组:

 obj.code == $scope.personalDetailsObj.personalDetails.caste

我不确定您的应用程序逻辑,但我可以看到caste是一个字符串,您正在尝试根据代码进行检查。因为它始终返回一个空数组,list[0]将返回undefined,因此无法访问description属性。

可能会将其更改为:

 obj.code == $scope.personalDetailsObj.personalDetails.code

或者

 obj.caste == $scope.personalDetailsObj.personalDetails.caste

答案 1 :(得分:0)

我认为你的比较是错误的。它应该是

$ scope.personalDetailsObj.personalDetails.caste = $ scope.casteList.filter(function(obj){return obj.code == $ scope.personalDetailsObj.personalDetails。 code ;})[0 ] .DESCRIPTION;