2016-08-25 3 views
1

私はユーザープロファイルを一覧表示するプロファイルページを持っています。ユーザーは編集ボタンをクリックして、すべてのユーザー関連情報を編集できます。ユーザーがページを保存すると、プロファイルページに戻り、理想的には自動的に更新する必要があります。ビューの入力時にIonicで関数を呼び出すにはどうすればよいですか?

ユーザーがページに移動したときにトリガする種類のイベントがありません。 window.onLoad()は1回だけ動作し、window.onPageShow()と同じです。 window.onPopState()は、ユーザーがページから離れたときにトリガーされます。

私の考えは、ユーザ情報をダウンロードし、ビューに設定する)(そして、$ scope.initを呼び出し、このようなイベントに頼ることでした:

イオンで
.controller('UserProfileCtrl', function($scope, $http, $window, LocationService) { 
    $window.onPageShow = function() { 
     console.log("UserProfileCtrl->onPageShow(), getting location and loading user."); 
     LocationService.getLocation(); 
     $scope.init(); 
    }; 

    $scope.init = function() { 
     $http.post("my-backend-address") 
     .success(function (data, status, headers, config) { 
      $scope.user = data.user; 
     }) 
    } 
}); 
+0

角度ルータを使用していますか? –

+0

いいえ、これまで聞いたことはありません。 – doonot

答えて

0

あなたはイベントの表示と呼ばれるものを持っています、あなたはそれらについてhereを読むことができます。あなたのユースケースに興味のある2つのイベント、$ionicView.loaded$ionicView.beforeEnterがあります。ここで

は、あなたのコードでそれを使用することができる方法のコード例である:要するに

$scope.$on("$ionicView.beforeEnter", function() { 
    console.log("UserProfileCtrl->onPageShow(), getting location and loading user."); 
    LocationService.getLocation(); 
    $scope.init(); 
}); 

、ビューが作成されたときに$ionicView.loadedが呼び出され、$ionicView.beforeEnterは、ビューが入力されようとしているたびに呼び出されます。 $ionicView.beforeEnterを試して、使用例に合っているかどうかを確認することをおすすめします。

+0

それは素晴らしいです!そのイベントを私に見せてくれてありがとう!よく働く! – doonot

関連する問題