[英]How to properly re-initialize an array of returned data
在我的單頁Angular應用程序中,我有一個控制器,該控制器調用數據服務。 在數據服務中,結果被推送到名為_result的數組上。 在對數據服務的任何后續調用中,_result數組將附加到而不是先清空,這導致重復的數據被傳遞到控制器並顯示在視圖中。 我是Java的新手,請尋求幫助以確保對數據服務的任何其他調用僅返回唯一數據。 這是我的控制器:
angular.module('frontEndApp').controller('ViewExistingRequestsCtrl', ['$scope', 'requestsRepository',
function ($scope, requestsRepository) {
$scope.sendrequest = requestsRepository.getServiceRequests();
$scope.requests = requestsRepository.result;
}]
);
這是我的數據服務,它具有_result數組:
frontEndApp.factory('requestsRepository',function ($http) {
var _result = [];
var postServiceRequest = function (ServiceRequest) {
$http(
{
url: 'http://localhost:8080/api/ServiceRequests', method: "POST", data: ServiceRequest,
headers: {
'Content-Type': 'application/json'
}
}).success(function (data, status, headers, config) {
console.log("postServiceRequest Status: " + status);
}).error(function (data, status, headers, config) {
console.log("postServiceRequest FAILURE: " + status + " ServiceRequest: " + ServiceRequest);
});
};
var getServiceRequests = function () {
$http({
method: 'GET', url: 'http://localhost:8080/api/ServiceRequests'
}).success(function (data, status, headers, config) {
for (var key in data) {
_result.push(data[key]);
} console.log(_result)
return _result;
}).error(function (data, status, headers, config) {
return status;
});
};
return {
postServiceRequest: postServiceRequest, getServiceRequests: getServiceRequests, result: _result
};
});
只需在填充它之前將其重新定義為一個空數組即可:
...
$http({
method: 'GET', url: 'http://localhost:8080/api/ServiceRequests'
}).success(function (data, status, headers, config) {
_result = []; // <---- this is the key!
for (var key in data) {
_result.push(data[key]);
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.