普通的js返回並刷新這里就不多說了,百度就有很多方法。
下面說的是使用了angularjs、ionic開發的一個手機app中使用的一個返回上一頁並刷新的方法。
場景:回復的頁面是單獨的,點擊保存回復后會回到上一個頁面,此時上一個頁面會顯示出你新回復的內容
回復頁面的controller的相關代碼:
$scope.save = function () {
Replies.giveAReply($scope.reply); //保存回復
$ionicHistory.goBack(); //返回上一頁
};
記得在controller的function參數里加上$ionicHistory,如下
angular.module('sth.controllers').controller('ReplyCtrl', function ($scope, $state, $ionicConfig, Replies, $ionicHistory, $cordovaCamera, $ionicModal, Auth)
上一個頁面的controller的相關代碼:
1 $scope.rapidResponse.update = function () { 2 $scope.rapidResponse.replies = Replies.getReplies('rapid_response', $scope.rapidResponse.id); 3 }; //獲取回復 4 5 $scope.rapidResponse.update(); //函數調用 6 7 $scope.$on('$stateChangeSuccess', $scope.rapidResponse.update); //如果有變化即重新調用獲取回復的函數,實現了刷新
記得$scope.$on('$stateChangeSuccess', $scope.rapidResponse.update);
不能寫成$scope.$on('$stateChangeSuccess', $scope.rapidResponse.update());
不加括號表示調用的是函數的本身,加括號返回的是函數執行的結果。
stackoverflow里也有類似的解決方法:http://stackoverflow.com/questions/27853431/ion-list-does-not-refresh-after-state-go-is-called
如果還有更好的方法望指教,謝謝~
