Как мне повторить этот объект массива с помощью ng-repeat
У меня есть следующий объект массива, возвращенный в мою консоль, и теперь я хочу перебрать его, используя ng-repeat в моем файле index.html, так что как мне это сделать, это возвращаемый json:-
{body: ["xx", "x", "x", "vinit↵", "gyghg", "hjhghg", "j", "jj", "bn", "ss"]}
Мой app.js:-
var app = angular.module('myApp',[]);
app.controller('movie',['$http','$scope',function($http,$scope) {
$scope.products = [];
$http.get('blog/').then(successCallback, errorCallback);
function successCallback(response){
products=response.data;
console.log(products);
}
function errorCallback(error){
console.log(error);
}
// body...
}]);
И вот что я делаю, чтобы перебрать эти объекты в моем index.html:-
<div ng-repeat="item in products">
<ul>
<li>{{item.body}}</li>
</ul>
</div>
Но он не печатает ничего на экране, я хочу напечатать эти элементы массива в этом теге li.
6 ответов
Попробуй это
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js"></script>
<script type="text/javascript">
angular.module("app", []).controller('Controller', Controller);
function Controller($scope, $http) {
var res = {body: ["xx", "x", "x", "vinit↵", "gyghg", "hjhghg", "j", "jj", "bn", "ss"]};
$scope.products = res.body;
}
</script>
</head>
<body>
<div ng-app="app" ng-controller="Controller" class="container">
<div ng-repeat="item in products track by $index">
<ul>
<li>{{item}}</li>
</ul>
</div>
</div>
</body>
</html>
Требуется изменить products=response.data;
в $scope.products=response.data;
Присвойте значение ответа переменной угловой области, чтобы получить доступ к этому значению на html-странице.
И измените {{item.body}} на {{item}}
<li>{{item}}</li>
У вас должна быть переменная $scope,
менять
От
products=response.data;
к
$scope.products=response.data;
и вы должны быть в состоянии получить доступ,
<div ng-repeat="item in products">
<ul>
<li>{{item}}</li>
</ul>
</div>
Как все говорят вам, вам нужно заменить
products=response.data;
в
$scope.products=response.data;
После этого в представлении вы хотите перебрать элементы тела, поэтому:
<div ng-repeat="item in products.body">
<ul>
<li>{{item}}</li>
</ul>
+ Изменить products=response.data;
к $scope.products=response.data;
И измените {{item.body}} на {{item}}
<div ng-repeat="item in products">
<ul>
<li>{{item}}</li>
</ul>
</div>
Попробуй это
var app = angular.module('myApp',[]);
app.controller('movie',['$http','$scope',function($http,$scope) {
$scope.products = [];
$http.get('blog/').then(successCallback, errorCallback);
function successCallback(response){
$scope.products=response.data;
console.log($scope.products);
}
function errorCallback(error){
console.log(error);
}
// body...
}]);