我有一个这样的控制器:

$scope.myVar = 0;

  $scope.back = function () {
    $scope.myVar--;
  };

  $scope.next = function () {
    $scope.myVar++;
  };


如果next()(使用ngClick)被调用3次,则得到:

// 1

// 2

// 3

但是如果调用了back()(带有ngSwipeLeft),它将返回

//-1

当我明显期望

// 2

我在这里想念什么?

更新:包括ngTouch详细信息-这似乎是问题。包括ngTouch。

当我观看myVar值时-就像它存在两次一样-一次是ngSwipeLeft调用,另一次是ngClick调用

最佳答案

您的摘要对我来说不错。您需要提供更多代码,错误可能在其他地方。看下面的代码。

<!doctype html>
<html ng-app="myapp">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular-touch.min.js"></script>
    <script>
        var app = angular.module('myapp',['ngTouch']);
        var controller = app.controller('mycontroller', ['$scope',function($scope){
              $scope.myVar = 0;

              $scope.back = function () {
                $scope.myVar--;
              };

              $scope.next = function () {
                $scope.myVar++;
              };
        }]);
    </script>
  </head>
  <body ng-controller="mycontroller">
    <div>
      <h1>MyVar: {{myVar}}!</h1>
      <input type="button" value="back" ng-click="back()"/>
      <input type="button" value="next" ng-click="next()"/>
    </div>
  </body>
</html>

07-27 15:47