当进入视图时,我如何在Ionic中调用函数?

How can I call a function in Ionic when a view is entered?

本文关键字:Ionic 调用 函数 视图      更新时间:2023-09-26

我有一个列出用户配置文件的配置文件页面。用户可以单击编辑按钮编辑所有与用户相关的信息。一旦用户保存了页面,他们就会导航回应该自动更新的个人资料页面。

现在我缺少了一种触发事件,当用户导航到一个页面。window.onLoad()只工作一次,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;
        })
    }
});

在Ionic中,你有一个叫做View Events的东西,你可以在这里阅读它们。您的用例有两个感兴趣的事件:$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,看看它是否适合您的用例。