加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

什么是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方法.我们将这些东西放在运行块中,这对于进行单元测试并不是那么容易.

以下是我的网站示例:
这个例子基于django和angularjs网站,在这里我配置了我的应用程序.

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;

}]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读