19

I'm using $ionicPopup.confirm() but I would like to change "cancel's button" text. Is it possible to do so ?

I'm aware of .show() syntax:

  buttons: [
  { text: 'Cancel' }
  ]

But it does not seem to work with .confirm() ...

Thank 4 the help

smknstd
  • 341
  • 1
  • 3
  • 6

3 Answers3

32

At least in the latest release of Ionic (1.0.0) you can do the following:

    var confirmPopup = $ionicPopup.confirm({
        title: 'Popup title',
        template: 'Popup text',
        cancelText: 'Custom cancel',
        okText: 'Custom ok'
    }).then(function(res) {
        if (res) {
            console.log('confirmed');
        }
    });

Here is the relative documentation.

Augusto Destrero
  • 4,095
  • 1
  • 23
  • 25
11

UPDATE : on ionic 1.0.0, this is now possible, check here

showConfirm Options :

{
  title: '', // String. The title of the popup.
  cssClass: '', // String, The custom CSS class name
  subTitle: '', // String (optional). The sub-title of the popup.
  template: '', // String (optional). The html template to place in the popup body.
  templateUrl: '', // String (optional). The URL of an html template to place in the popup   body.
  cancelText: '', // String (default: 'Cancel'). The text of the Cancel button.
  cancelType: '', // String (default: 'button-default'). The type of the Cancel button.
  okText: '', // String (default: 'OK'). The text of the OK button.
  okType: '', // String (default: 'button-positive'). The type of the OK button.
}

Yes you can do wathever you want, using ionic popup.show and bind the Cancel event.

$ionicPopup.show({
   template: msg,
   title: titleConfirm,
   buttons: [
     { text: "BTN_NO",
       onTap:function(e){
            return false;
       }
     },
     { text: "BTN_OK",
       onTap:function(e){
            return true;
       }
     },
   ]
});

After investigation on the ionic popover.confirm function this is not possible to customize it. The value of popover.confirm are hardcoded line 446

function showConfirm(opts) {
    return showPopup(extend({
      buttons: [{
        text: opts.cancelText || 'Cancel',
        type: opts.cancelType || 'button-default',
        onTap: function() { return false; }
      }, {
        text: opts.okText || 'OK',
        type: opts.okType || 'button-positive',
        onTap: function() { return true; }
      }]
    }, opts || {}));
  }
Vikasdeep Singh
  • 20,983
  • 15
  • 78
  • 104
aorfevre
  • 5,034
  • 3
  • 21
  • 51
3

It's possible to do, you have to use the "type" thing inside the button

buttons: [
            { text: 'Cancel' },
            {
                text: '<b>Save</b>',
                type: 'button-assertive',
                onTap: function(e) {
                    $scope.request_form.abc = "accepted";
                }
            }
        ]

in the type part you have to give the class name , and you can change the color of the button.

Giacomo1968
  • 25,759
  • 11
  • 71
  • 103
Anshul Kalra
  • 198
  • 3
  • 13