Confirmation dialog on ng-click - AngularJS

后端 未结 17 1373
一向
一向 2020-11-30 00:03

I am trying to setup a confirmation dialog on an ng-click using a custom angularjs directive:

app.directive(\'ngConfirmClick\', [
    function()         


        
相关标签:
17条回答
  • 2020-11-30 00:37

    Delete confirmation popup using bootstrap in angularjs

    very simple.. I have one solution for this with using bootstrap conformation popup. Here i am provided

    <button ng-click="deletepopup($index)">Delete</button>
    

    in bootstrap model popup:

    <div class="modal-footer">
      <a href="" data-dismiss="modal" ng-click="deleteData()">Yes</a>
      <a href="" data-dismiss="modal">No</a>
    </div>
    

    js

    var index=0;
    $scope.deleteData=function(){
        $scope.model.contacts.splice(index,1);
    }
    // delete a row 
    $scope.deletepopup = function ($index) {
        index=$index;
        $('#myModal').modal('show');
    };
    

    when i click delete button bootstrap delete conformation popup will open and when i click yes button row will deleted.

    0 讨论(0)
  • 2020-11-30 00:40

    In today's date this solution works for me:

    /**
     * A generic confirmation for risky actions.
     * Usage: Add attributes: ng-really-message="Are you sure"? ng-really-click="takeAction()" function
     */
    angular.module('app').directive('ngReallyClick', [function() {
        return {
            restrict: 'A',
            link: function(scope, element, attrs) {
                element.bind('click', function() {
                    var message = attrs.ngReallyMessage;
                    if (message && confirm(message)) {
                        scope.$apply(attrs.ngReallyClick);
                    }
                });
            }
        }
    }]);
    

    Credits:https://gist.github.com/asafge/7430497#file-ng-really-js

    0 讨论(0)
  • 2020-11-30 00:43
        $scope.MyUpdateFunction = function () {
            var retVal = confirm("Do you want to save changes?");
            if (retVal == true) {
                $http.put('url', myData).
                success(function (data, status, headers, config) {
                    alert('Saved');
                }).error(function (data, status, headers, config) {
                    alert('Error while updating');
                });
                return true;
            } else {
                return false;
            }
        }
    

    Code says everything

    0 讨论(0)
  • 2020-11-30 00:45

    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")
    
            }
        }
    
    0 讨论(0)
  • 2020-11-30 00:45

    I wish AngularJS had a built in confirmation dialog. Often, it is nicer to have a customized dialog than using the built in browser one.

    I briefly used the twitter bootstrap until it was discontinued with version 6. I looked around for alternatives, but the ones I found were complicated. I decided to try the JQuery UI one.

    Here is my sample that I call when I am about to remove something from ng-grid;

        // Define the Dialog and its properties.
        $("<div>Are you sure?</div>").dialog({
            resizable: false,
            modal: true,
            title: "Modal",
            height: 150,
            width: 400,
            buttons: {
                "Yes": function () {
                    $(this).dialog('close');
                    //proceed with delete...
                    /*commented out but left in to show how I am using it in angular
                    var index = $scope.myData.indexOf(row.entity);
    
                    $http['delete']('/EPContacts.svc/json/' + $scope.myData[row.rowIndex].RecordID).success(function () { console.log("groovy baby"); });
    
                    $scope.gridOptions.selectItem(index, false);
                    $scope.myData.splice(index, 1);
                    */
                },
                "No": function () {
                    $(this).dialog('close');
                    return;
                }
            }
        });
    

    I hope this helps someone. I was pulling my hair out when I needed to upgrade ui-bootstrap-tpls.js but it broke my existing dialog. I came into work this morning, tried a few things and then realized I was over complicating.

    0 讨论(0)
  • 2020-11-30 00:46

    If you don't mind not using ng-click, it works OK. You can just rename it to something else and still read the attribute, while avoiding the click handler being triggered twice problem there is at the moment.

    http://plnkr.co/edit/YWr6o2?p=preview

    I think the problem is terminal instructs other directives not to run. Data-binding with {{ }} is just an alias for the ng-bind directive, which is presumably cancelled by terminal.

    0 讨论(0)
提交回复
热议问题