Ionic:方法调用进入页面



我有一个

<离子侧菜单>
与链接到我的页面定义在这里:
    app.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
      $stateProvider.state('content', {
        url: "/content",
        abstract: true,
        templateUrl: "templates/sidemenu.html",
        controller: 'SideController'
      });
      $stateProvider.state('content.home', {
        url: "/home",
        views: {
          'menuContent': {
            templateUrl: "templates/home.html",
            controller: "HomeController"
          }
        }
      });
      $stateProvider.state('content.nearby', {
        url: "/nearby",
        views: {
          'menuContent': {
            templateUrl: "templates/nearby.html",
            controller: "NearbyController"
          }
        }
      });
      $stateProvider.state('content.map', {
        url: "/map",
        views: {
          'menuContent': {
            templateUrl: "templates/map.html",
            controller: "MapController"
          }
        }
      });
      $stateProvider.state('content.radar', {
        url: "/radar",
        views: {
          'menuContent': {
            templateUrl: "templates/radar.html",
            controller: "RadarController"
          }
        }
      });
      $stateProvider.state('content.location-details', {
        url: "/location-details/:index",
        views: {
          'menuContent': {
            templateUrl: "templates/location-details.html",
            controller: "DetailsController"
          }
        },
        resolve: {
          currentLocation: function($stateParams, shareService, NearbyFactory)
          {
            return NearbyFactory.getLocations()[$stateParams.index];
          }
        }
      });
      $urlRouterProvider.otherwise("/content/home");
    });

当用户导航到此页面和页面离开时(用于加载AJAX数据或开始监听一些Cordova传感器),我想在控制器中执行一个方法。像这样:

    app.controller("HomeController", function()
    {
      $scope.onEnter = function(previous_page)
      {
       ...
      };
      $scope.onExit = function(next_page)
      {
       ...
      };
    });

我已经在$stateProvider状态下尝试了onEnter和onExit,但很抱歉我没有$scope。

获得此功能的最简单/最好/最好的方法是什么?如果我能确定上一页/下一页,如果用户向后/向前导航,那就太好了。我试过这个:

$scope.$on('$routeChangeStart', function(event, next, current)
{
 console.log(next);
});

但这并不是每次都有效,加载页面时也没有触发。这对我来说也有点脏,因为我必须在每个控制器中实现这一点。

谢谢!

您可以使用$ionicView.beforeEnter和beforeLeave。只需将其添加到您的家庭控制器:

   app.controller("HomeController", function()
{
        $scope.$on('$ionicView.beforeEnter', function() {
           //do stuff before enter
        });
         $scope.$on('$ionicView.beforeLeave', function() {
           //do your stuff after leaving
        });
});

您可以在此处查看$ionicView的文档。

你可以试试这个。它每次加载页面时都能工作:

$scope.$on('$locationChangeStart', function(event)
{
    console.log(event);
});

相关内容

  • 没有找到相关文章

最新更新