简体   繁体   中英

Angularjs ng-repeat, value array by key

Please help me to udestand. I can't to get an array of key value for ng-repeat (in blockquote). Nothing is displayed and no errors in console. This is my changed code:

<div class="row row-content" ng-controller = "DishDetailController">
  <blockquote ng-repeat="comment in dish">
    <p>{{comment.rating}} Stars</p>
    <p>{{comment.comment}}</p>
    <footer>John Lemon</footer>
  </blockquote>
</div>

Script:

angular.module('confusionApp', [])
.controller('DishDetailController', ['$scope', function($scope) {

var dish=[{
 name:'Uthapizza',
 image: 'images/uthapizza.png',
 category: 'mains', 
 label:'Hot',
 price:'4.99',
 description:'A unique combination of Indian Uthappam (pancake) and Italian pizza, topped with Cerignola olives, ripe vine cherry tomatoes, Vidalia onion, Guntur chillies and Buffalo Paneer.',
 comment: [
  {
   rating:5,
   comment:"Imagine all the eatables, living in conFusion!",
   author:"John Lemon",
   date:"2012-10-16T17:57:28.556094Z"
  },
  {
   rating:4,
   comment:"Sends anyone to heaven, I wish I could get my mother-in-law to eat it!",
   author:"Paul McVites",
   date:"2014-09-05T17:57:28.556094Z"
 },
 ]
 }
 ];

 $scope.dish = dish;

 }]);

Change,

 this.dish = dish;

to

$scope.dish = dish;

And inject $scope variable to your controller,

var app = angular.module('confusionApp', []);
app.controller('dishDetailController', function($scope) {
  var dish = [{
    name: 'Uthapizza',
    image: 'images/uthapizza.png',
    category: 'mains',
    label: 'Hot',
    price: '4.99',
    description: 'A unique combination of Indian Uthappam (pancake) and Italian pizza, topped with Cerignola olives, ripe vine cherry tomatoes, Vidalia onion, Guntur chillies and Buffalo Paneer.',
    comments: [{
      rating: 5,
      comment: "Imagine all the eatables, living in conFusion!",
      author: "John Lemon",
      date: "2012-10-16T17:57:28.556094Z"
    }, {
      rating: 4,
      comment: "Sends anyone to heaven, I wish I could get my mother-in-law to eat it!",
      author: "Paul McVites",
      date: "2014-09-05T17:57:28.556094Z"
    }]
  }];
  $scope.dish = dish;
});

If you want to loop over the comments, the view should be,

<blockquote ng-repeat="comment in dish[0].comments">
   <p>{{comment .rating}} Stars</p>
   <p>{{comment .comment}}</p>
   <footer>John Lemon</footer>
</blockquote>

DEMO

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM