Я пытаюсь собрать мою первую страницу AngularJS. Эта таблица считывает свои данные из $http
вызова, получающего json. Итерация работает нормально, и таблица отображается, как и ожидалось, пока я не включу | filter:searchitem
в ng-repeat
для users
. В этот момент я получаю
Ошибка: [filter: notarray] Ожидаемый массив, но полученный: {.....}
Я прочитал все вопросы, которые казались похожими, и не смог найти никого, кого бы я смог применить к этому делу. Итерация ng-repeat="user in users"
работает без фильтра, поэтому users
имеет правильный формат.
Это соответствующий код. Спасибо за любую помощь.
<script >
var myApp = angular.module('myApp', []);
myApp.controller('studentController', ['$scope', '$http', function($scope, $http) {
$scope.searchitem = ''; // set the default search/filter term
$scope.users = [];
//Get List
$http({ method: 'GET', url: 'serve-products.php'
}).then(function successCallback(response) { $scope.users = response.data;}, function errorCallback(response) { alert("Error. Try Again!"); });
//Update list
$scope.refreshUser = function(user) { $http({ method: 'GET',
url: 'serve-products.php?d=' + user.code
}).then(function successCallback(response) { $scope.users = response.data;}, function errorCallback(response) { alert("Error. Try Again!"); }); };
}]);
</script>
<body class="container" ng-app="myApp" ng-controller="studentController" >
<form>
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search" ng-model="searchitem" >
</div>
</div>
</form>
<table class="table table-condensed table-striped">
<thead>
<tr>
<td>ID</td>
<td>Name</td>
<td>Stock</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="user in users | filter:searchitem ">
<td> {{user.code}} </td>
<td> {{user.name}} </td>
<td> <span ng-class="{'st0': user.stocktext == 'OUT OF STOCK'}"> {{user.stocktext}} </span></td>
<td>
<span ng-repeat="(key,value) in user.stock">
<span class="st{{value}}">{{key}}</span>
</span>
</td>
<td> <button class="btn btn-primary btn-sm" ng-click="refreshUser(user)">Refresh</button> </td>
</tr>
</tbody>
</table>
</body>