使用angularjs、ionic框架如何實現返回上一頁並重新整理
阿新 • • 發佈:2019-01-29
普通的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
如果還有更好的方法望指教,謝謝~