2015-05-03 2 views
3

Я пытаюсь научиться угловатым, и я застреваю, пытаясь повторить div от объекта json. Я подтвердил, что объект json возвращается, если я просто поместил теги абзаца, отображая myData правильно, но мой div не повторяется или даже отображается, когда я проверяю html в review.html. Согласно jsonlint, мой json также действует. Любая идея, что может быть неправильно здесь?ng-repeat на странице шаблона не отображает данные

Вот index.html

<!doctype html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>All The Reviews</title> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js"></script> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.3/angular-route.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script> 
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.css"> 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.js"></script> 
<script src="myScript.js"></script> 
</head> 

<body ng-app="myApp"> 
<div ng-controller="homeController"> 
<div> 
    <nav class="navbar navbar-inverse" role="navigation" style="padding-left:130px;"> 
    <ul class="nav navbar-nav"> 
    <li class="active"><a href="#/">Home<span class="sr-only">(current)</span></a></li> 
    <li><a href="#/reviews">Reviews</a></li> 
    <li><a href="#/create">Create</a></li> 
    </ul> 
    </nav> 
</div> 
<br/> 
    <div ng-view class="jumbotron"></div> 
</div> 
</body> 
</html> 

Вот мой шаблон reviews.html

<div style="padding-left:130px;padding-right:200px;"> 
<h1>Reviews</h1> 
<p>{{myData}}</p> 
<div ng-repeat="review in myData.reviews">{{review.title}}</div> 
</div> 

Вот подам JS

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


app.config(function($routeProvider){ 


    $routeProvider 
     .when('/',{ 
      templateUrl: 'home.html', 
      controller: 'homeController' 
     }) 
     .when('/reviews',{ 
      templateUrl: 'reviews.html', 
      controller: 'reviewsController' 
     }); 


}); 


app.controller('homeController',function($scope, $http){ 

}); 

app.controller('reviewsController',function($scope, $http){ 

$scope.myData={}; 

$http.get('myData.json').success(function(data) { 
    $scope.myData = data; 
}); 

}); 

А вот мои данные JSON

[{"products":[{"productId":"1","name":"Fluffy Eggs"},{"productId":"1","name":"Crispy Bacon"}]}, 
{"reviews":[{"reviewId":"1","title":"These are some nice eggs.","productId":"1","description":"Eggs that are just the right temp and extremely fluffy."}, 
{"reviewId":"2","title":"mmm, bacon","productId":"2","description":"it's pretty crispy. Maybe a little too crispy."}]}, 
{"ratings":[{"ratingId":"1","reviewId":"1","rating":"5"}, 
{"ratingId":"2","reviewId":"1","rating":"4"}, 
{"ratingId":"3","reviewId":"2","rating":"1"}, 
{"ratingId":"4","reviewId":"1","rating":"5"}, 
{"ratingId":"5","reviewId":"1","rating":"5"}, 
{"ratingId":"6","reviewId":"2","rating":"5"}, 
{"ratingId":"7","reviewId":"2","rating":"4"}, 
{"ratingId":"8","reviewId":"1","rating":"5"}]}] 

Спасибо за весь ваш ввод

ответ

3

Вашей структура JSON представляет собой массив, содержащий три объекта со свойствами продуктами, отзывов и рейтингами. Поэтому вы должны выбрать второй пункт для перебрать ваши отзывы:

<div ng-repeat="review in myData[1].reviews">{{review.title}}</div> 

See this plnkr

+0

Это работает, спасибо! – sef9110

0

Измените свой JSON на:

{"products":[{"productId":"1","name":"Fluffy Eggs"},{"productId":"1","name":"Crispy Bacon"}], 
"reviews":[{"reviewId":"1","title":"These are some nice eggs.","productId":"1","description":"Eggs that are just the right temp and extremely fluffy."}, 
{"reviewId":"2","title":"mmm, bacon","productId":"2","description":"it's pretty crispy. Maybe a little too crispy."}], 
"ratings":[{"ratingId":"1","reviewId":"1","rating":"5"}, 
{"ratingId":"2","reviewId":"1","rating":"4"}, 
{"ratingId":"3","reviewId":"2","rating":"1"}, 
{"ratingId":"4","reviewId":"1","rating":"5"}, 
{"ratingId":"5","reviewId":"1","rating":"5"}, 
{"ratingId":"6","reviewId":"2","rating":"5"}, 
{"ratingId":"7","reviewId":"2","rating":"4"}, 
{"ratingId":"8","reviewId":"1","rating":"5"}]} 
+0

Я тоже это пробовал, но у меня возникла ошибка в отношении символа без пробелов или чего-то подобного. благодаря – sef9110