润爷 2017-11-02 02:01 采纳率: 0%
浏览 2514

angularjs 中定义一个方法,点击执行一次后,再次点击无法执行

按钮如下:
流程痕迹

js代码:
$scope.taskTaskProcessConf = [];
$scope.taskTaskProcessConf = function() {//流程痕迹
if($scope.selectTaskList.length Notify.alert("info","请选择");
return;
}
if($scope.selectTaskList.length > 1){
Notify.alert("info","你选中了多行");
return;
}
$http.post(URL, pamars},derName:'endDate',dir:'asc',orderFirst:true}]"}).success(function(data){

            $scope.taskTaskProcessConf = data.data;
            $scope.taskTaskProcessConf.refresh = true;
            $('#workflowTaskProcessModal').modal('show');//要显示的模态框
        }).error(function(){
            Notify.alert("error","操作失败");
        });
    };
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 03:15
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在AngularJS中,如果你想要确保一个方法只被调用一次,你可以使用ng-click指令。这个指令允许你在JavaScript事件处理程序(例如$scope.$apply())内部使用window对象来创建一个新的函数。

    首先,在你的HTML模板中添加<button>元素,并为其设置ng-click属性:

    <button ng-click="taskTaskProcess()">点击开始流程</button>
    

    然后,你需要在控制器中编写逻辑来判断是否已经执行过这个方法。你可以这样写:

    // 在controller中
    $scope.taskTaskProcess = function() {
        // 如果已经执行过了,那么就直接返回
        if ($scope.taskTaskProcess) {
            return;
        }
        
        // 否则,就执行方法
        $scope.taskTaskProcess = true;
    };
    

    在这个例子中,我们检查$scope.taskTaskProcess变量是否已经被初始化为true。如果是,那么我们就跳过对taskTaskProcess方法的调用,因为这个方法已经在上一次点击时被调用了。

    注意:这种方法只能防止多次点击导致的方法重复调用,但不能保证方法不会被意外地多次调用。如果你真的想防止多次点击导致的方法重复调用,你可能需要更复杂的逻辑,比如在每次调用方法之前检查当前的状态。

    评论

报告相同问题?