如何在 ng-click Angular 上添加确认 window

How to add an confirmation window on ng-click Angular

我有一个带有 ng-click 的 link。我需要对该点击进行确认 window。

<h4><a href="" ng-click="makeUnfavourite(favourite.userId,$index);remove(favouriteData.data.result,$index)">Un-Favourite</a></h4>

目前它包括2个功能。我必须在确认后才执行这两个功能。我的两个函数在 usercontroller.js.plz 中定义见下面的代码

var userControllers = angular.module('userControllers', ['ui.bootstrap','gm']);
userControllers.controller('myProfileCtrl', function ($scope, $routeParams, $rootScope, $http, $location, $window, $timeout) {`  
$scope.makeUnfavourite=function(id,index){
    var indextoremove=index;
    var currentuserid=2;
    var favUserId=id;
    console.log(favUserId);
    var params = {
        currentuserid:2,
        favUserId:id
        };
       if(favUserId){
        $http.post($rootScope.STATIC_URL + 'users/makeUnFavourite', params).success(function(response){
            $scope.favHide=response;
            }).error(function(err){
            console.log("Error"+err);
        });
    }

};
$scope.remove = function(favourite,index){
    favourite.splice(index,1);
};
});

我必须在 confirmation.I 上执行 makeUnfavourite() 和 remove() 函数,我比 angular 更新鲜。现在我在一个部分完成的项目中工作

只需使用 ng-confirm-click,如下所示:

<h4><a href="" confirmed-click="confirmedAction()" ng-confirm-click="Do you confirm?">Un-Favourite</a></h4>

DEMO

更新: 对于 angular 指令,请参阅 here...

更新 2: 我懂了。你可以简单地做:

$scope.confirmedAction = function() {
    makeUnfavourite(favourite.userId, $index);
    remove(favouriteData.data.result, $index);
};

很简单,你有2个函数

<a confirmed-click="makeUnfavourite(favourite.userId,$index)" ng-confirm-click="Confirm unfavorite?">Un-Favourite</a>

现在您可以在 makeUnFavorite 中调用 $scope.remove 函数,或者在确认点击中调用函数,如下所示:

<a confirmed-click="makeUnfavourite(favourite.userId,$index);remove(favouriteData.data.result,$index);" ng-confirm-click="Confirm unfavorite?">Un-Favourite</a>

我更喜欢第一种解决方案。完整代码:

控制器

var userControllers = angular.module('userControllers', ['ui.bootstrap','gm']);
userControllers.controller('myProfileCtrl', function ($scope, $routeParams, $rootScope, $http, $location, $window, $timeout) {`  
$scope.makeUnfavourite=function(id,index,favourite){
    var indextoremove=index;
    var currentuserid=2;
    var favUserId=id;
    console.log(favUserId);
    var params = {
        currentuserid:2,
        favUserId:id
        };
       if(favUserId){
        $http.post($rootScope.STATIC_URL + 'users/makeUnFavourite', params).success(function(response){
            $scope.favHide=response;
            //here we call the remove function, always inside the $http response for not having async issues
            $scope.remove(favourite,index);
            }).error(function(err){
            console.log("Error"+err);
        });
    }


};
$scope.remove = function(favourite,index){
    favourite.splice(index,1);
};
});

HTML

<a confirmed-click="makeUnfavourite(favourite.userId,$index,favouriteData.data.result)" ng-confirm-click="Confirm unfavorite?">Un-Favourite</a>

编辑

还有一点,如果你在$http.post上使用这个结构会更好:

$http.post($rootScope.STATIC_URL + 'users/makeUnFavourite').then(function(response){
     //Ok response stuff
}, function(error){
     //Error response stuff
});

ng-click return confirm 100% works

in html file call delete_plot() function

<i class="fa fa-trash delete-plot" ng-click="delete_plot()"></i> 

Add this to your controller

 $scope.delete_plot = function(){
        check = confirm("Are you sure to delete this plot?")
        if(check){
            console.log("yes, OK pressed")
        }else{
            console.log("No, cancel pressed")

        }
    }