为什么ng-repeat没有显示父键?

时间:2015-12-30 18:59:46

标签: angularjs

我有一些这样的数据设置:

$scope.data = [
    {
      weekDay: {
        monday: [{
          time: ''
        }],
        tuesday: [{
          time: ''
        }], 
        wednesday: [{
          time: ''
        }],
        thursday: [{
          time: ''
        }],
        friday: [{
          time: ''
        }],
        saturday: [{
          time: ''
        }],
        sunday: [{
          time: ''
        }]
      }
    }];

如果我像这样设置一个ng-repeat ......

<p ng-repeat="day in data.weekDay">{{day}}</p>

我所看到的只是:

{&#34;时间&#34;:&#34;&#34;}

{&#34;时间&#34;:&#34;&#34;}

{&#34;时间&#34;:&#34;&#34;} ...

为什么我看不到父键(一周中的哪几天)?我怎样才能在我的中继器中使用一周的日子? (例如,作为h3标签中的标题)

2 个答案:

答案 0 :(得分:3)

您无法访问weekDay之类的data.weekDay属性,因为$scope.data是一个数组。将其作为data[0].weekDay访问。

<p ng-repeat="(day, timeObj) in data[0].weekDay">
    {{day}}
</p>

否则就像这样改变你的数据(我觉得这更有意义)

$scope.data = {
        weekDay: {...}
    };

并在ng-repeat

中将其作为data.weekDay进行访问

Jsfiddle

答案 1 :(得分:0)

在json中,工作日是一个索引,而不是一个值。例如星期一就像下面那样:

$scope.data = [
{
  weekDay: {
   dayname: 'monday',        
   timevalue : [{
      time: ''
    }],

    ... Rest of values ...
  }
}];

和html一样

<p ng-repeat="day in data.weekDay">{{dayname}}</p>