在做Ionic項目時,在HTML標籤實現有動畫效果的切換頁面很簡單,只要在標籤中加入nav-direction="back"或nav-direction="forward"就可以實現了。但是用$state.go()怎麼實現動畫效果呢。其實也很簡單,只要在$state.go()後面加上 $ionicViewSwitcher.nextDirection("back")或 $ionicViewSwitcher.nextDirection("forwoard")就可以實現跟加nav-direction一樣的效果了,記得要注入ionicViewSwitcher服務。如果想要在Android手機的返回鍵也要實現這個效果怎麼辦呢。
首先要在.run方法中註冊返回鍵時間,然後在$ionicHistory.goBack()後加上$ionicViewSwitcher.nextDirection("back")或 $ionicViewSwitcher.nextDirection("forwoard")即可
$ionicPlatform.registerBackButtonAction(function (e) {
e.preventDefault();
function showConfirm() {
var confirmPopup = $ionicPopup.confirm({
title: '<strong>退出應用?</strong>',
template: '你確定要退出應用嗎?',
okText: '退出',
cancelText: '取消'
});
confirmPopup.then(function (res) {
if (res) {
ionic.Platform.exitApp();
} else {
// Don't close
}
});
}
// Is there a page to go back to?
if ($location.path() == '/tab/dash') {
showConfirm();
} else if ($ionicHistory.backView()) {
// Go back in history
$ionicHistory.goBack();
$ionicViewSwitcher.nextDirection("back");
} else {
// This is the last page: Show confirmation popup
showConfirm();
}
return false;
}, 101);