我有一个简单的upVote / downVote计数器。它在downvote上效果很好,但是当你点击upvote时它会在原始upvote变量的末尾附加一个1。 (它不添加,追加),但仅适用于upvote。为什么这样,我该如何解决?
<span>
<a ng-click="upCount = upCount + 1" ng-init="upCount=location.upVoteCount"
class="btn btn-success">{{upCount}}
</a>
<a ng-click="downCount = downCount - 1" ng-init="downCount=location.downVoteCount"
class="btn btn-danger">{{downCount}}
</a>
</span>
注意:location.upVoteCount和location.downVoteCount都定义为整数。它们使用ng-repeat =“locationList”中的位置填充。因此,它们的值未在控制器中显式声明。将+更改为a - 工作得很好,如果用一个数字替换location.upVoteCount(或location.downVoteCount),add函数也可以正常工作。
感谢您的帮助!
答案 0 :(得分:3)
+
表示“添加”和“连接”,而-
表示“减号”。
强制变量在加法模式下运行:
upCount = (parseInt(upCount) + 1)
答案 1 :(得分:2)
试试这个
<a ng-click="upCount = upCount + 1" ng-init="upCount=parseInt(location.upVoteCount)"
class="btn btn-success">{{upCount}}
</a>
<a ng-click="downCount = downCount - 1" ng-init="downCount=parseInt(location.downVoteCount)"
class="btn btn-danger">{{downCount}}
</a>
如果您的location.upVoteCount和location.downVoteCount变量不是整数/数字,那么这可能是一个问题。
首先尝试解析。请参阅上面的ng-init directive
。
答案 2 :(得分:1)
我不确定为什么你遇到问题,除非位置实体上有字符串。我只是做了一个快速的小提琴,它工作正常。这是HTML:
<div ng-app="myApp" ng-controller="myController">
<span>
<a ng-click="upCount = upCount + 1" href="#" ng-init="upCount=location.upVoteCount">Up: {{upCount}}</a>
<a ng-click="downCount = downCount - 1" href="#" ng-init="downCount=location.downVoteCount">Down: {{downCount}}</a>
</span>
</div>
这是JavaScript:
var app = angular.module("myApp", []);
app.controller("myController", function($scope) {
$scope.location = {
upVoteCount: 0,
downVoteCount: 0
};
});
它可以正常上调或下调投票。在这里运行:
答案 3 :(得分:1)
我现在无法尝试,但是如何:
ng-click="upCount = upCount - (-1)"
没有+运算符混淆表达式赋值器