ng-repeat循环遍历对象中的对象

Gar*_*uuk 2 javascript loops angularjs ng-repeat angularjs-ng-repeat

我很困惑如何遍历这个数据模型.

$scope.object = [ {person1: {name: 'jon', height: 100}} , {person2: {name: 'joe', height: 200}}, {person3: {name: 'lisa', height: 150}}]
Run Code Online (Sandbox Code Playgroud)

我正在尝试像这样重复

<tr ng-repeat = "person in object[0]">
    <td>{{person.name}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

这当然只会显示'jon'.我怎样才能得到所有人(x).name?我可以将它们命名为all1而不是person1,person2,但我的项目的数据模型不允许这样.能做什么?

谢谢

Dan*_*eck 6

抛开对象数据中缺少的大括号,你可以做一些愚蠢的事情

<tr ng-repeat="person in object">
    <td ng-repeat="keys in person">
        {{keys.name}}
    </td>   
</tr>
Run Code Online (Sandbox Code Playgroud)

...这会做你想要的(内部ng-repeat只会循环一次,因为每个"人"只有一个键("person1","person2"......)但更好的解决方案可能是改变您的数据结构要么删除那些不必要的person1,person2等标识符并将其视为数组:

$scope.object = [
    {name:'Joe'},
    {name:'Susan'}
];
Run Code Online (Sandbox Code Playgroud)

或删除数组括号并将其视为哈希表:

$scope.object = {
    person1: {name:'Bob'}, 
    person2: {name:'Ted'}
};
Run Code Online (Sandbox Code Playgroud)

使用这些数据结构中的任何一个,您的HTML模板都是相同的:

<tr ng-repeat="person in object">
    <td>{{person.name}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

现在你正在尝试将它构建为一个数组和一个哈希,这没有任何好处,只会让访问数据更加笨拙.