简体   繁体   中英

Angular js ng-repeat not working

I have done a sample app with angular js and added a ng-repeat to loop my data but it's not looping it. I have shown my code below

 <li style="background: white url('{{book.imgUrl}}') no-repeat" ng-repeat="book in books">
          <div>
            <h3>{{book.name}}</h3>
            <p>{{book.price}}</p>
            <ul>
              <li>Rating: {{book.rating}}</li>
              <li>Binding: {{book.binding}}</li>
              <li>Publisher: {{book.publisher}}</li>
              <li>Released: {{book.releaseDate}}</li>
            </ul>
            <p>{{book.details}}</p>
            <button class="btn btn-info pull-right" ng-click="addToKart(book)">Add to Kart</button>
          </div>
        </li>

I have created a live demo of the problem here

In order to get value in view from controller , you have to bind that with $scope.

Your books variable isn't bind with scope

Convert this

var books=[

to this

$scope.books=[

or like this

$scope.books=books

DEMO

Try this

Use $scope.books instead of var books = [];

In your controller, instead of using

var books

use

$scope.books

You are close.

Instead of var book you need to glue book variable with $scope

Like

 $scope.book=[{

   // Rest of code
}]

Also first pass the dependency as string else you may see error during minification

    app.controller('BookListCtrl',["$scope", function($scope) {
   // Rest of code

}])

您应该使用$scope.books而不是var books。

DEMO

Assign your book in specific controller scope object parameter as per below

app.controller('BookListCtrl', function($scope) {
$scope.books=books;
})

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