改变状态(路线)时触发功能

时间:2015-08-25 12:05:36

标签: angularjs angular-ui-router ionic

我正在使用IONIC + AngularJS构建一个简单的页面应用程序(Mobile) 我想在改变状态时触发一个功能。 下面是我控制状态的代码。

var app = angular.module('App', ['ionic'])
var busyIndicator = new WL.BusyIndicator('content');
app.factory("busyIndicator",function()
{
    return busyIndicator;
}       
);
app.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
 )
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
  cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
  // org.apache.cordova.statusbar required
  StatusBar.styleDefault();
}
});
})

app.config(function($stateProvider, $urlRouterProvider) {
 $stateProvider
 .state('login', {
  url: "/login",
  views: {
      'viewLoader':{
      templateUrl: "views/login.html"}
  }
 })
.state('menu', {
  url: "/menu",
  abstract: true,
  views: {
      'viewLoader':{
      templateUrl: "views/menu.html",
          controller: 'AppCtrl'
    }
  }
 })
  .state('menu.customer', {
    url: "/customer",
    views: {
      'menuContent': {
        templateUrl: "views/customer.html",
            controller: 'CustomerCtrl'
      }
    }
  });

 $urlRouterProvider.otherwise('/login');
 })
.directive('appReady', function() {
 return {
  restrict: 'A',
   link: function(scope, element, attrs){
  console.log("Done rendering body");
  WL.App.hideSplashScreen();
 }
};
});

我在这个链接上看到过类似的问题: how to call a function in angularjs after change url

我应该如何在此代码中添加一个函数?

2 个答案:

答案 0 :(得分:1)

这是您可以采取的一种方法,例如一条目的地路线:

.state('example', {
            url: '/url',
            templateUrl: 'example.html',
            controller: 'ExampleController',
            resolve : {
                Timestamp: ['TimestampService', function(TimestampService){
                    return TimestampService.update(new Date());
                }]
            }

答案 1 :(得分:0)

尝试使用"$stateChangeSuccess"事件