什么是app.run(appRun);用于AngularJS?
发布时间:2020-12-17 17:24:59 所属栏目:安全 来源:网络整理
导读:我有一个app.run(appRun);在我的代码中,但我不清楚为什么需要它. appRun函数有一些基本的东西,但看起来没有任何东西不能在appController中. 我已经有一个app控制器在这里使用: html lang="en" class="light" id="ngApp" ng-app="app" ng-cloak ng-controlle
我有一个app.run(appRun);在我的代码中,但我不清楚为什么需要它. appRun函数有一些基本的东西,但看起来没有任何东西不能在appController中.
我已经有一个app控制器在这里使用: <html lang="en" class="light" id="ngApp" ng-app="app" ng-cloak ng-controller="appController" 希望有些人可以帮我解释一下这个区别.谢谢 解决方法
您可以在文档中找到有关app.run()模块的详细信息
here.
据我所知,在配置完所有服务并创建了注入器之后执行了run方法.我们将这些东西放在运行块中,这对于进行单元测试并不是那么容易. 以下是我的网站示例: var AppName = angular.module('AppName',[ 'ngRoute','ngCookies',]); // use for cookie AppName.provider('myCSRF',[function(){ var headerName = 'X-CSRFToken'; var cookieName = 'csrftoken'; var allowedMethods = ['GET']; this.setHeaderName = function(n) { headerName = n; } this.setCookieName = function(n) { cookieName = n; } this.setAllowedMethods = function(n) { allowedMethods = n; } this.$get = ['$cookies',function($cookies){ return { 'request': function(config) { if(allowedMethods.indexOf(config.method) === -1) { config.headers[headerName] = $cookies[cookieName]; } return config; } } }]; }]) AppName.config(['$routeProvider','$httpProvider','$interpolateProvider',function($routeProvider,$httpProvider,$interpolateProvider) { $interpolateProvider.startSymbol('{$'); $interpolateProvider.endSymbol('$}'); $httpProvider.interceptors.push('myCSRF'); $httpProvider.defaults.xsrfCookieName = 'csrftoken'; $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; $httpProvider.defaults.withCredentials = true; $routeProvider .when('/anyPage',{ templateUrl: '/anyPage/' }) .otherwise({ redirectTo: '/' }) }]) AppName.run(['$http','$cookies',function($http,$cookies) { $http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken; }]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |