如何让ngclick像切换一样工作

how to make ngclick work like toggle?

本文关键字:一样 工作 ngclick      更新时间:2023-09-26

我取了一个跨度,单击该跨度后,它会向其添加 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>

//view.html

<span ng-click="doOneTimeOnly();">{{tvshow.episode.ratings.loved}}</div>

控制器.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');

现在这里有一个选项ng禁用,您只能单击一次。

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