如何让ngclick像切换一样工作?

时间:2014-11-29 11:30:03

标签: javascript angularjs

我已经占用了一个跨度,在点击了跨度之后,它增加了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>

2 个答案:

答案 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>