내가 이미지 목록을 표시하고 수 있도록 다음과 같은 각도와 HTML 코드가 투표 :허용 안 여러 표
<script type="text/javascript">
var application = angular.module('Application', []);
application.service('ImageService', function ($http) {
return {
GetList: function (page) {
return $http.get('api/images', { params: { page: page } });
},
Vote: function (image) {
return $http.post('api/images/{key}/vote', { key: image.Key });
}
}
});
application.controller('ImageController', function ImageController($scope, ImageService) {
var page = 0;
$scope.images = [];
ImageService.GetList(page)
.success(function (data, status, headers, config) {
$scope.images = $scope.images.concat(data);
})
.error(function (data, status, headers, config) { });
$scope.vote = function (image) {
ImageService.Vote(image)
.success(function (data, status, headers, config) { })
.error(function (data, status, headers, config) { });
};
});
</script>
<div data-ng-app="Application" data-ng-controller="ImageController" class="gallery">
<div data-ng-repeat='image in images' class="image">
<img src="{{image.Url}}" alt="" />
<a href="" data-ng-click="vote(image)"><i class="icon-heart"></i></a>
<span>{{image.Votes}}</span>
</div>
</div>
각각의 이미지는 고유 ID, image.Id있다.
사용자가 동일한 이미지를 두 번 투표하도록 허용하지 않으려면 어떻게해야합니까? 투표로
$scope.vote = function (image) {
if (!image.voted) {
ImageService.Vote(image)
.success(function (data, status, headers, config) { image.voted = true })
.error(function (data, status, headers, config) { });
}
};
단순히 이미지를 플래그 :
백엔드에서이를 막는 유일한 방법은 방지하는 것입니다. –
네, 물론입니다. 그러나이 경우 사용자가 서로 다른 두 가지 요청에서 두 번 투표 할 수도 있다는 사실에 신경 쓰지 않습니다. 나는 단지 사용자가 동일한 요청으로 투표를 거부하고 싶습니다. 대부분의 경우 이미지가 항상 달라지기 때문에 –
이 질문에서 분명하지 않습니다. –