2016-04-10 94 views
-3

的json看起来像下面AngularJS NG-重复使用嵌套的JSON

$scope.peoples = [people:{ 
    name: 'Mike ', 
    age: 20 
}, people:{ 
    name: 'Peter S ', 
    age: 22 
}]; 

注:我不能改变JSON结构。

这里是我的代码ng-repeat看不懂json

<div ng-controller="MyCtrl"> 
    <table class="table table-hover"> 
     <tr ng-repeat="p in peoples"> 
      <td> Name: {{ p.name }} &nbsp;</td> 
      <td> Age: {{ p.age }} &nbsp;</td> 
     </tr> 
    </table> 

</div> 

var app = angular.module('myApp', []); 

function MyCtrl($scope) { 
    $scope.peoples = [people:{ 
     name: 'Mike ', 
     age: 20 
    }, people:{ 
     name: 'Peter S ', 
     age: 22 
    }]; 
} 
+0

我不明白这个“**我不能改变json结构**”,如果你在控制台'var a = [people:{name:'Mike', age:20 }人:{ 名称: '彼得·S', 年龄:22 }]'你**未捕获的SyntaxError:意外的标记:(...)**。这就像期待'如果x == 3> 4'工作,因为你不能改变的if语句 –

回答

1

看起来你的JSON数组是错误的方式定义:

$scope.peoples = [{ 
     name: 'Mike ', 
     age: 20 
    },{ 
     name: 'Peter S ', 
     age: 22 
    }]; 

通知也没有人反对。你定义了没有对象的人。如果你修复你的JSON,你的代码将会正常工作。

这里是工作的代码使用JSON修复:http://jsfiddle.net/Lvc0u55v/2236/

固定与人对象是对现有代码的其他方式,您将在JavaScript对象,如下图所示的人:

的Javascript:

$scope.peoples = [{ 
    people : { 
     name: 'Mike ', 
     age: 20 
    }},{ 
    people: { 
     name: 'Peter S ', 
     age: 22 
    }}]; 

HTML:

<td> Name: {{ p.people.name }} &nbsp;</td> 
    <td> Age: {{ p.people.age }} &nbsp;</td> 

这样你可以使用人物对象。这里的工作代码:http://jsfiddle.net/Lvc0u55v/2237/

总体而言,我会建议使用第一种方法,而不是第二个。

+0

我知道如果我删除的人,然后它会工作。但在你的js小提琴中你没有使用p.people.name。所以请在jsfiddle中使用它。 – Thomas

+0

看到你的小提琴http://jsfiddle.net/Lvc0u55v/2238/不工作时,我使用'p.people.name' – Thomas

+0

结帐第二方案: 你需要定义http://jsfiddle.net/Lvc0u55v/2237/人们在角度下重复理解。 – insomiac