var vm = this; . . . . . . . . . /* modal */ vm.showModal = function () { $ionicModal.show(); }; $ionicModal.fromTemplateUrl('my-modal.html', { scope: $scope, animation: 'slide-in-up' }).then(function (modal) { vm.modal = modal; }); vm.openModal = function () { vm.modal.show(); }; vm.closeModal = function () { vm.modal.hide(); }; // Clean up the modal $scope.$on('$destroy', function () { vm.modal.remove(); }); // Execute action on hide modal $scope.$on('modal.hidden', function () { . . . }); // Execute action on remove modal $scope.$on('modal.removed', function () { . . . });Note that we still need to use $scope for particular function.
The modal template:
<ion-modal-view> <ion-header-bar> <h1 class="title">My Modal title</h1> </ion-header-bar> <ion-content> Hello! <button ng-click="vm.closeModal()">Close</button> </ion-content> </ion-modal-view>