在我的页面上,我有一个ng-repeat='item in items'
要遍历的$scope.items
.
$scope.items
调用时获取其数据$scope.listItems
,它使用 $http 从连接到数据库的 REST API 获取数据。
最初调用$scope.items
控制器来初始化 $scope.items 并用数据填充它。
现在,当我添加时,我知道 $http 正在工作,因为更改已反映在数据库中。$scope.items
也根据我的控制台日志记录进行更改。但是,页面不会更新以反映更改。
我想我应该使用$scope.$apply()
,但我只是得到“错误:$digest 已经在进行中”所以我没有正确使用它。我是 AngularJS 的新手,一般不知道很多 Javascript,所以请忍受我的无知。
这是我的代码。
var app = angular.module('App', []);
app.controller('AppCtrl', function ($scope, $http) {
$scope.listItems = function () {
$http({method: 'GET', url: '/api/items'})
.success(function (data, status, headers, config) {
$scope.items = data;
console.log($scope.items);
})
.error(function (data, status, headers, config) {
$scope.items = data || 'Request failed';
$scope.status = status;
});
}
$scope.addItem = function () {
$scope.itemDetails.node_type = 'record'; // since input hidden doesnt work
$http({method: 'POST', url: '/api/items/add', data: $scope.itemDetails,
headers: {'Content-Type': 'application/json'}})
.success(function (data, status, headers, config) {
$scope.status = status;
$scope.listItems();
//$scope.$apply(); // throws an error
})
.error(function (data, status, headers, config) {
$scope.status = status;
});
}
$scope.listItems(); // initialize $scope.items
});