如何在更改url后调用angularjs中的函数

时间:2014-07-24 13:46:30

标签: angularjs

我使用了ng-init =" isauthorised()"在我的代码中,在更改每个URL后获取调用函数

当页面刷新时调用它但是我需要这个函数来在每次点击ancher标签时调用

3 个答案:

答案 0 :(得分:6)

要做的最好的事情之一是使用路由提供程序在页面更改发生之前调用函数。其中一个例子(修改后的from here)是:

$scope.$on('$locationChangeStart', function(event) {
    // call your method here
});

关于这一点的好处是你知道你的例程会被调用,你不必修改页面上每个锚标记的代码。顺便说一句,如果您对更多信息感兴趣,请查看angular documentation here

答案 1 :(得分:3)

在您的应用程序中,如果您想在路径更改时触发该功能,则下面的代码将使用

$scope.$on('$routeChangeStart', function(next, current) { 
   ... This Function will trigger when route changes ...
 });

$scope.$on('$routeChangeSuccess', function(next, current) { 
   ... This Function will trigger After the route is successfully changed ...
 });

如果你想触发这个函数,对于特定的路由,你可以在app.config

中的resolve函数中给它

例如

myapp.config(['$routeProvider',
  function($routeProvider) {

    $routeProvider.
      when('/login', {
        templateUrl: 'views/login.html',
        controller: 'LoginCtrl'
      }).
      when('/home', {
        templateUrl: 'views/home.html',
        controller: 'HomeCtrl',
        resolve: {
          token: function(Token){
            ... Trigger the function what u want, and give token as dependency for particular route controller ...
          }
        }
      }).

      otherwise({
        redirectTo: 'index.html'
      });
  }]
);

答案 2 :(得分:-2)

添加ng-click="isauthorised()"或者你的意思是什么?