2013-10-22 33 views
1

嗨,我是新来角,只是试图学习如何做一些事情。我试图显示以下数据。使用Chrome的Batarang插件我可以看到我宁静的webservice返回下面的json,它被包裹到我的模型中。从键值数组获取JSON值与角

{ 
    course: { 
     country: Test1 
     numberEnrolledPerMonthPerWeek: { 
      entry: 
      [ { 
       key: 2 
       value: { 
        numberEnrolled: 0 
        weeks: 2 
        year: 2011 
       } 
      } , { 
       key: 3 
       value: { 
        numberEnrolled: 4 
        weeks: 3 
        year: 2011 
       } 
      } , { 
       key: 4 
       value: { 
        numberEnrolled: 6 
        weeks: 4 
        year: 2011 
       } 
      } , { 
       key: 8 
       value: { 
        numberEnrolled: 0 
        weeks: 8 
        year: 2011 
       } 
      } 
      ] 
     } 
    } 
} 

我正在尝试将每个键的numberEnrolled值取出到列中。所以在我的HTML我有以下

<table class="table table-striped table-bordered"> 
      <tr ng-repeat="course in enrolledcourses.enrolledEnrolment"> 
       <td>         
        {{course.country}} 
       </td> 
       <td> 
        {{course.numberEnrolledPerMonthPerWeek[2].numberEnrolled}} 
       </td>    
      </tr> 
     </table> 

{{course.numberEnrolledPerMonthPerWeek [2] .numberEnrolled}}不返回我任何值,因此任何人都可以建议什么是正确的语法来获取numberEnrolled值请。

我已经试过

{{course.numberEnrolledPerMonthPerWeek.2.numberEnrolled}} 
{{course.numberEnrolledPerMonthPerWeek[2][numberEnrolled]}} 

我的控制器代码如下

.controller('PeopleCtrl', function($scope, recruitmentFactory) { 
    $scope.enrolledcourses = recruitmentFactory.get(); 


    $scope.test = "hello"; 
    $scope.save = function() { 
     alert("save has been called"); 
    }; 
}) 
+0

如果这是控制器,请出示它。是'$ scope'中的模型?在任何情况下,numberEnrolledPerMonthPerWeek是一个对象,并且字段'2'在那里不存在 –

+0

我可以看到它是一个对象,但是如何获取该对象中的条目 – user1107753

回答

2

首先,你的JSON有很多错误。也许它只是你得到的输出,但只是在以下情况下:: 有缺少逗号和测试是一个符号,但我想它被记录为一个字符串。

$scope.enrolledcourses = { 
    course : { 
    country: 'Test1', 
    numberEnrolledPerMonthPerWeek: { 
     entry: [{ 
      key: 2, 
      value: { 
       numberEnrolled: 0, 
       weeks: 2, 
       year: 2011, 
      } 
     }, { 
      key: 3, 
      value: { 
       numberEnrolled: 4, 
       weeks: 3, 
       year: 2011 
      } 
     }, { 
      key: 4, 
      value: { 
       numberEnrolled: 6, 
       weeks: 4, 
       year: 2011 
      } 
     }, { 
      key: 8, 
      value: { 
       numberEnrolled: 0, 
       weeks: 8, 
       year: 2011 
      } 
     }] 
    } 
    } 
}; 

那么你的HTML需要访问正确的属性:

<tr ng-repeat="course in enrolledcourses"> 
     <td>{{course.country}}</td> 
     <td>{{course.numberEnrolledPerMonthPerWeek.entry[2].value.numberEnrolled}}</td> 
    </tr> 

这是一个live example

0
numberEnrolledPerMonthPerWeek[2] is not your array 

尝试

numberEnrolledPerMonthPerWeek.entry[2] 
+0

尝试上述操作会生成{“key”:“ 4" , “值”:{ “numberEnrolled”: “6”, “周”: “4”, “年”: “2011”}} – user1107753

0

好了,所以我做了以下来获取值出来

{{course.numberEnrolledPerMonthPerWeek.entry[2].value.numberEnrolled}} 
1

只是提供一些额外的帮助:我碰到这个问题有很多,首先要弄清楚如何浏览JSON数据。尝试使用可视化工具,并验证您的JSON以确保其正确。

下面是我用可视化的数据: http://jsonviewer.stack.hu/ 验证此: http://jsonlint.com/