我已经占用了一个跨度,在点击了跨度之后,它增加了1。但我需要的是,ngclick应该只添加一次到跨度内的任何值。再次点击它应该从中减去1。它不应该连续迭代。 我从json数据获得{{tvshow.episode.ratings.loved}}。 请帮助。
//html
<html>
<body>
<span class="label likeme" ng-click="tvshow.episode.ratings.loved = tvshow.episode.ratings.loved + 1" ng-init="{{tvshow.episode.ratings.loved}}">
<i class="icon-thumbs-up"></i> {{tvshow.episode.ratings.loved}}</span>
</body>
</html>
答案 0 :(得分:1)
// view.html
<span ng-click="doOneTimeOnly();">{{tvshow.episode.ratings.loved}}</div>
// controller.js
$scope.times = 0;
$scope.doOneTimeOnly = function () {
if ( $scope.times < 1) {
//do my stuff with the tvshow.episode.ratings.loved
//.................
$scope.times += 1;
}
}
其实我不认为这是有道理的,但你要求的是:P
这也可以轻松转移到自定义指令,例如directive('ngOneClickOnly');
答案 1 :(得分:0)
现在你有一个选项ng-disabled,你可以只点击一次。
<script>
angular.module("my_app",[])
.controller("my_ctr",function($scope){
$scope.skm=true;
$scope.mmmmmm=function()
{
if($scope.skm==false)
{
alert("first time you clicked");
}
else
{
alert("now you cant click");
$scope.skm=false;
}
}
})
</script>
<body ng-app="my_app" ng-controller="my_ctr">
<button ng-click="mmmmmm()" ng-disabled="!skm">hii</button>
</body>