AMG
AMG

Reputation: 704

How to call a function outside $ionicActionSheet on buttonClicked?

I am trying to use $ionicActionSheet to execute a function. Moreover, in the example below, I want to call doSomethingElse() when the user clicks on first option to "do something else". I can execute commands within the function buttonClicked() succesfully, but it does not want to call the functions outside.

// within controller

$scope.doSomethingElse = function(textStr) {
    window.alert(textStr)
}

$scope.showActions = function(friendName) {
    $ionicActionSheet.show({
     buttons: [
       { text: 'do something else },
       { text: 'do something' },
     ],
     destructiveText: 'View all',
     titleText: '<h4>' + friendName + ' </h4>',
     cancelText: 'Cancel',
     buttonClicked: function(index, $scope) {
       if(index==0) {
         // window.alert("Hello");  works fine
         $scope.doSomethingElse("Index 0")
       }
       if(index==1) {
         // window.alert("Hello");  works fine too
         $scope.doSomethingElse("Index 1")
       }
       return true;
     },
     destructiveButtonClicked: function() {
       window.alert("Hey All");
       return true;
     }
   });

}

Upvotes: 1

Views: 703

Answers (1)

tasseKATT
tasseKATT

Reputation: 38490

Replace the following:

buttonClicked: function(index, $scope) {

With:

buttonClicked: function(index) {

Or rename the second argument to for example:

buttonClicked: function(index, button) {

Otherwise it will overwrite the $scope variable. The second argument that gets passed to the buttonClicked function is not the $scope, it's the button object.

Upvotes: 1

Related Questions