Javascript 如何将值精确地加1或减1
我在数组中有一些值。假设我在facebook中使用的“喜欢”和“不喜欢”选项的值。用户只能给出1个喜欢或1个不喜欢。如果不喜欢,喜欢变为0,如果喜欢,不喜欢变为0Javascript 如何将值精确地加1或减1,javascript,arrays,json,angularjs,Javascript,Arrays,Json,Angularjs,我在数组中有一些值。假设我在facebook中使用的“喜欢”和“不喜欢”选项的值。用户只能给出1个喜欢或1个不喜欢。如果不喜欢,喜欢变为0,如果喜欢,不喜欢变为0 喜欢和不喜欢的数字不应给出负值-ve值应四舍五入为0 对于like=24和dislike=0:用户只能选择一次like或dislike。i、 例如,当选择like时,like为25,loke保持为0。如果选择了“不喜欢”,则“喜欢”变为24,“不喜欢”保持为0。但值24根本不应该达到26 对于like=0和厌恶=15:当用户选择lik
<li ng-repeat="employee in data.employees">
<button ng-click="like();">Like</button>
{{employee.x}}
<button ng-click="dislike()">Dislike</button>
{{employee.y}}
</li>
喜欢
{{employee.x}
不喜欢
{{employee.y}
您可以在相同的
ng单击添加和减去喜欢的处理程序中,向每个员工添加喜欢的和不喜欢的属性
$scope.like = function(employee){
employee.x = parseInt(employee.x) + 1;
if (parseInt(employee.y) > 0)
employee.y = parseInt(employee.y) - 1;
employee.liked = true;
employee.disliked = false;
}
$scope.dislike = function(employee){
if (parseInt(employee.x) > 0)
employee.x = parseInt(employee.x) - 1;
employee.y = parseInt(employee.y) + 1;
employee.liked = false;
employee.disliked = true;
}
然后,ng disabled
可以防止额外的点击
<li ng-repeat="employee in data.employees">
<button ng-click="like(employee)" ng-disabled="employee.liked">Inc</button>
like: {{employee.x}}
<button ng-click="dislike(employee)" ng-disabled="employee.disliked">Dec</button>
dislike: {{employee.y}}
</li>
股份有限公司
比如:{{employee.x}
12月
不喜欢:{{employee.y}
现在可以用了
<li ng-repeat="employee in data.employees">
<button ng-disabled="employee.edited" ng-click="like($index);">Inc</button>
like: {{employee.x}}
<button ng-disabled="employee.edited" ng-click="dislike($index)">Dec</button>
dislike: {{employee.y}}
</li>
对于编辑后的代码您是否真的在问如何处理x=x+1
和y=y-1
?好吧,您需要将“喜欢”/“不喜欢”与用户联系起来。因此,每个employee
记录都应该有一个喜欢/不喜欢的用户列表,对于当前用户,您需要检查用户是否已经喜欢或不喜欢某个特定的员工,并相应地处理其他喜欢/不喜欢的人员。无论如何,这不是一个角度问题。@NewDev忘记每个用户,我只需要在我的角度应用程序中使用这些值进行计算。只是为了呈现。不在任何数据库中存储这些值。只在客户端。谢谢你。然后,你需要为每个员工记录关于当前用户是否投票以及如何投票的额外信息,并相应地为你的like()
和dislike()
函数编码。您还可以考虑添加<代码> CANLUTE()/<代码>和<代码> CANDISTIONE()/<代码>启用/禁用按钮。DUPE:请您给这个回答谢谢。希望你得到你想要的答案
$scope.data = {"employees":[
{"x":"0", "y":"0", 'edited':false},
{"x":"24", "y":"0", 'edited':false},
{"x":"0", "y":"15", 'edited':false},
{"x":"32", "y":"12", 'edited':false},
]};
function like(index){
$scope.data.employees[index].edited = true;
$scope.data.employees[index].x = parseInt($scope.data.employees[index].x) + 1;
if(parseInt($scope.data.employees[index].y) !== 0)
$scope.data.employees[index].y = parseInt($scope.data.employees[index].y) - 1;
}
function dislike(index){
$scope.data.employees[index].edited = true;
if(parseInt($scope.data.employees[index].x) !== 0)
$scope.data.employees[index].x = parseInt($scope.data.employees[index].x) - 1;
$scope.data.employees[index].y = parseInt($scope.data.employees[index].y) + 1;
}