ng-repeat中的Json对象

时间:2016-08-24 06:02:04

标签: angularjs json

响应对象,如

$scope.list= [
Object {
  cid=74,
  date="2016-08-25T00:00:00.000+0530",
  optkey="key",
  optvalue="{
    value:{
      'name':test,
      'gender':male
    }
  }"
},
Object {
 cid=75,
 date="2016-08-25T00:00:00.000+0530",
 optkey="key",
 optvalue="{
   value:{
     'name':test2,
     'gender':female
   }
 }"
}},
Object {
  cid=77,
  date="2016-08-26T00:00:00.000+0530",
  optkey="key",
  optvalue="{
    value:{
      'name':test1,
      'gender':female
    }
  }"
}]

并在html页面中使用ng-repeat

<div ng-repeat="item in list">
  {{item.date}} -- works fine
</div>

这里如何在object optvalue中显示json值,做了一些像。

这样的代码
<div ng-repeat="item in list">
  {{item.optvalue.value}} -- but it is undefined
</div>

但它没有用,任何人都可以提示这个

5 个答案:

答案 0 :(得分:0)

仅仅因为你的optvalue是一个字符串而不是一个对象。它应该是:

optvalue = {
    value:{
      'name':test1,
      'gender':female
    }
}

在JSON中,对象应该 NOT 在括号中。

答案 1 :(得分:0)

试试这个工作示例,请检查创建的对象。

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {

$scope.list= 
  [
    { 
       cid:74, date:"2016-08-25T00:00:00.000+0530",  optkey:"key",  optvalue:{value:{'name':'test','gender':'male'}}
    },
    {  
      cid:75, date:"2016-08-25T00:00:00.000+0530",  optkey:"key",  optvalue:{value:{'name':'test','gender':'male'}}
    },
    { 
      cid:76, date:"2016-08-25T00:00:00.000+0530",  optkey:"key",  optvalue:{value:{'name':'test','gender':'male'}}
    }
  ] 

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<div ng-repeat="item in list">
  {{item.optvalue.value.name}}
</div>
</div>

答案 2 :(得分:0)

response JSON无效

  1. 字符串应该用双引号括起来。
  2. 期望冒号,而不是=键值对。
  3. 找到无效字符。
  4. 号码无效。
  5. 问题捕获:

    enter image description here

    有效JSON:

    [
      {
        "cid": 74,
        "date": "2016-08-25T00:00:00.000+0530",
        "optkey": "key",
        "optvalue": {
          "value": {
            "name": "test",
            "gender": "male"
          }
        }
      },
      {
        "cid": 75,
        "date": "2016-08-25T00:00:00.000+0530",
        "optkey": "key",
        "optvalue": {
          "value": {
            "name": "test2",
            "gender": "female"
          }
        }
      },
      {
        "cid": 77,
        "date": "2016-08-26T00:00:00.000+0530",
        "optkey": "key",
        "optvalue": {
          "value": {
            "name": "test1",
            "gender": "female"
          }
        }
      }
    ]
    

    在您的情况下{{item.optvalue.value}}正在提供undefined,因为optvalue是字符串而不是对象。因此,它应该是object

    "optvalue": {
              "value": {
                "name": "test1",
                "gender": "female"
              }
            }
    

答案 3 :(得分:0)

感谢您的回答,我已经使用 -

解决了这个问题
angular.toJson and angular.fromJson

发送到服务器时使用

angular.toJson(stringOfJson)

当获得响应对象时使用

angular.fromJson(value)

并设置为object字段,它工作正常。

答案 4 :(得分:-1)

您需要将代码更改为

<div ng-repeat="item in list">
 {{item.optvalue.value.name}} 
</div>