jquery – 如何在AngularJs中的每个页面中运行一个函数

前端之家收集整理的这篇文章主要介绍了jquery – 如何在AngularJs中的每个页面中运行一个函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个函数来验证Cookie是否存在,并且我想使用 angularjs在每个页面中运行此函数.我似乎无法使该函数运行.我应该把它放在一个新的控制器上吗?

这是我达到了多远

angular.module('myApp',['ngCookies']).
    config(['$routeProvider',function($routeProvider) {
    $routeProvider.
        when('/products',{templateUrl: '/tmpl/products.html',controller: Ctrl}).
        otherwise({redirectTo: '/index'})
  }]).run( function($rootScope,$location) {

 //should I call it here?
 //validateCookie();


});

function validateCookie($scope,$cookieStore,$http){


}

解决方法

我认为有几种方法解决这个问题.如果您想要在每次更改路由时发生此验证(这意味着它将在应用程序首次启动时以及在应用程序中的每个页面上运行),您可以执行以下操作:
angular.module('myApp',['ngCookies']).
config(['$routeProvider',function($routeProvider) {
    $routeProvider.
        when('/index',{templateUrl: '/tmpl/index.html',controller: IndexCtrl}).
        when('/products',controller: Ctrl}).
        otherwise({redirectTo: '/index'})
}])
.run(function($rootScope,validateCookie) {
    $rootScope.$on('$routeChangeSuccess',function () {
        validateCookie($rootScope);
    })
})
.factory('validateCookie',function($cookieStore,$http){
    return function(scope) {
        // Validate the cookie here...
    }
})

如果您不需要在每次路由更改时运行,您可以更改“运行”功能

.run(function($rootScope,validateCookie) {
    validateCookie($rootScope);
})

猜你在找的jQuery相关文章