1. 程式人生 > >使用angularjs、ionic框架如何實現返回上一頁並重新整理

使用angularjs、ionic框架如何實現返回上一頁並重新整理

普通的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

如果還有更好的方法望指教,謝謝~