2017年春节相约斯里兰卡

我们喜欢上了旅行,是为了去发现及感受更多的人与物。
斯里兰卡,印度洋上的一颗明珠,很少对这个岛国有过关注,它总隐藏着一层朦胧的面纱,让人冲动着去揭开。

斯里兰卡消费水平比国内低,物价相对比较便宜,特别是海鲜,猪肉牛肉跟青菜比较贵,大米没中国的好吃,但是长的很好看,玉米很香,很浓的玉米味;热带水果像木瓜、菠萝蜜、番荔枝等也非常便宜;只可惜我对菠萝蜜过敏,嘴巴馋又不能吃。

计划去斯里兰卡的时候是2016年的春节在东北就决定了,没想到海漫从东北回来就把机票给订了,而我却一直还在犹豫不定。直到2016年10月我才把机票给买了下来;这里要感谢海漫,走在前面的人,永远都是最坚强的人;当我订好机票,没想到阿紫、Zoey、小可也加入了我们,要是燕子跟刘云也加入就完美了。当然更要感谢大家互相给予的建议及对我的信任,信任我做的行程计划(根据走走行程计划更改)、订房及租车信息等等;再次感谢我们的翻译官Zoey,为我们全程翻译。

angularJS创建拦截注入$httpProvider、interceptor 、auth

angularJS创建拦截注入,为每个$http请求添加auth权限请求:

var app = angular.module("myApp", ["ngRoute", "ngResource"])
    .constant('ACCESS_LEVELS',{
        PUB:1,
        USER:2
    })
    .config(["$routeProvider", "$httpProvider","ACCESS_LEVELS", function ($routeProvider, $httpProvider,ACCESS_LEVELS) {

        //设置http头
        $httpProvider.defaults.headers.common["X-Response-Code-By"] = "Angular1.5.8";

        var interceptor = function ($q, $rootScope, auth) {
            return {
                'response': function (res) {
                    //登录成功,设置authkey
                    if (res.config.url.indexOf('/api/v1/login')!=-1) {
                        auth.set(res.data.auth);
                    }
                    return res;
                },
                'responseError': function (rejection) {
                    switch (rejection.status) {
                        case 401:
                            if (res.config.url.indexOf('/api/v1/login')!=-1) {
                                // 如果当前不是在登录页面
                                $rootScope.$broadcast('auth:loginRequired');
                            }
                            break;
                        case 403:
                            $rootScope.$broadcast('auth:forbidden');
                            break;
                        case 404:
                            $rootScope.$broadcast('page:notFound');
                            break;
                        case 500:
                            $rootScope.$broadcast('server:error');
                            break;

                    }
                    return $q.reject(rejection);
                },
                'request': function (config) {

                    //为每条服务器请求加入auth权限
                    if(config.url.indexOf("api/v1/") > -1){
                        if(config.url.indexOf("?") != -1){
                            config.url += "&auth="+auth.get();
                        }else{
                            config.url += "?auth="+auth.get();
                        }

                    }
                    return config;
                },
                'requestError': function (rejection) {
                    if (canRecover(rejection)) {
                        return responseOrNewPromise
                    }
                    return $q.reject(rejection);
                },
            };
        };


        $httpProvider.interceptors.push(interceptor);

        //路由
        $routeProvider
            .when("/", {
                templateUrl: "view/main.html",
                controller: "controllerMain",
                access_level:ACCESS_LEVELS.PUB
            })
            .when("/list/:id", {
                templateUrl: "view/list.html",
                controller: "controllerList",
                access_level:ACCESS_LEVELS.PUB
            })
            .when("/about", {
                templateUrl: "view/about.html",
                controller: "controllerAbout",
                access_level:ACCESS_LEVELS.PUB
            })
            .when("/contact", {
                templateUrl: "view/contact.html",
                controller: "controllerContact",
                access_level:ACCESS_LEVELS.PUB
            })
            .when("/login", {
                templateUrl: "view/login.html",
                controller: "controllerLogin",
                access_level:ACCESS_LEVELS.PUB
            })
            .when("/register", {
                templateUrl: "view/register.html",
                controller: "controllerRegister",
                access_level:ACCESS_LEVELS.PUB
            })
            .when("/uc_enter", {
                templateUrl: "view/uc_enter.html",
                controller: "controllerUcenter",
                access_level:ACCESS_LEVELS.USER
            })
            .otherwise({redirectTo: '/'})
    }])
    .run(function ($rootScope, $location,auth,cookieUtils,ajax) {
        auth.set(cookieUtils.get("auth"));

        $rootScope.title = "本地网站";
        $rootScope.keywords = "网站的关键词";
        $rootScope.description = "网站的描述";

        $rootScope.isActive = function (score) {
            return score == $location.path();
        };

        //判断是否登录
        $rootScope.isLogin = function(){
            return !auth.get();
        }

        //路由开始
        $rootScope.$on('$routeChangeStart', function (evt, next, current) {

            //boot菜单选择器
            if($(".navbar-toggle").attr('aria-expanded') == "true"){
                $(".navbar-toggle").click();
            }
            if(next.$$route.access_level == 2 && auth.get().length == 0){
                toast("请先登录!");
                $location.path("/login");
            }
        });

        //路由成功
        $rootScope.$on('$routeChangeSuccess', function (evt, next, previous) {

        });

        //路由错误
        $rootScope.$on('$routeChangeError', function (current, previous, rejection) {
            c('$routeChangeError')
            c(current)
            c(previous)
            c(rejection)
        });

        //登出
        $rootScope.loginOut = function(){
            ajax.get("/api/v1/loginOut",{})
                .success(function(data){
                    if(data.response_code == 1){
                        auth.del();
                        if(toast(data.response_err)){
                            $location.path("/");
                        }

                    }
                })
        };
    })
.factory("UserSerice",function($q,$http,ajax){
    var _url = '/api/v1/user/';

    return {
        get:function(id,param){
            var defer = $q.defer();
            $http.get(ajax.parseParam(_url + id,param))
                .success(function(data){
                    defer.resolve(data);
                })
                .error(function(data){
                    defer.reject(data);
                })
            return defer.promise;
        },
        save:function(param){
            var defer = $q.defer();
            $http.post(_url,param)
                .success(function(data){
                    defer.resolve(data);
                })
                .error(function(data){
                    defer.reject(data);
                })
            return defer.promise;
        },
        put:function(id,param){
            var defer = $q.defer();
            $http.put(_url + id,param)
                .success(function(data){
                    defer.resolve(data);
                })
                .error(function(data){
                    defer.reject(data);
                })
            return defer.promise;
        }

    }
})
//用户权限校验
.factory("auth", function (cookieUtils) {
    var auth = '';
    return {
        set: function (a) {
            auth = a;
            cookieUtils.set('auth',typeof a == "string" ? a : '');
        },
        get: function () {
            return auth;
        },
        del:function(){
            auth = '';
            cookieUtils.del('auth');
            cookieUtils.del('user_name');
            cookieUtils.del('user_pwd');
        }
    }
})

 

 

 

 

 

架子心理也是病

架子心理也是病

有句谚语:“骡子架子大有力气,人架子大了不值钱。”摆架子,俗话又叫摆谱,这样的人只顾自己舒服,不管旁人感受,令人生厌。

有人说,架子是身份的附着物,可一些颇有身份的人毫无架子。眼里没有身份,自然就没了架子,这是一种超然与豁达。不自信的人才“拿架子”。他们眼里只有自己,其他人和事都是舞台、道具,架子便是自己始终要坚持塑造的脸谱。听过一个故事:青蛙自觉大得不得了,但有人说自己大不过水牛,于是拼命往肚子里吸气。结果水牛没比过,倒把肚皮胀爆了。

最近公司来了一个新领导,给我们的感觉当然是好的,我们很欢迎他,毕竟有人专心的做管理了。可是,刚来不久就来一个下马威,新官上任三把火吧,要树立军心,我们懂得。可是,这个地方我以前公司做的挺好的,界面清晰简洁,你把我们的项目也照着这样改;我……,好的。一看那个项目,是我眼睛瞎了么?这叫清晰简洁?还有就是这不行,那不行的,这要改那也要改;好的地方,我们当然愿意接受整改,可为什么要把他以前公司的东西搬弄到我们现在的公司里来呢?一个领导,进入一家新公司,总拿以前的东西来说事,我想说,那么好,你怎么离开了?就好比清朝的官吹嘘明朝怎么好,怎么秒,我要是爱新觉罗我也会这个人拖出去砍了。对于我们,这是一个不好的开始,至少可以确定一个满口脏话,整天把牛吹到月球上去还大大咧咧给员工下马威的人是个好领导。

爱摆架子的人无论到哪里都肯定不会受人们欢迎,而且还会给自己招惹到很多麻烦,如果一个人懂得放下身架,做点有意义的事情,反而更能真诚和谦和地接受别人不同的意见。一个领导有架子很正常,不然如何去管理一个公司,但是如果能及时放低身架,还能减少员工对自己的麻烦,甚至还会得到员工敬重。因为,能够放下身架的人,至少是一个有内涵、修养的人,他们的思考富有高度的弹性,不会唯我独尊,不会视别人为空气。也可以为自己带来更多的好机会,得到更多的支持。例中,道格拉斯争强好胜的心理促使他桀骜不驯,自觉高人一等。最终,他的一派豪迈,却让民众“敬而远之”;而林肯能竞选成功,凭借的就是自己的平民风格,放低“身架”,走进了民众,谦虚温和、强而不争、高而不傲,获得了支持。

管理也是人,想取得成功,短时间自信爆棚再所难免。爱摆谱、我素质、爱吹牛,要么就是情商低,要么就是受到一些“管理小诀窍”的荼毒,想以这种方式来树立权威。

    人之有礼,忧鱼之有水矣。

 

by Alan

100+ WEB开发工具和资源,热门的都在了

作为Web开发者,这是好的时代,也是坏的时代。Web开发技术也在不断变化。虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和新的编程语言,并愿意和渴望接受新的挑战,以适应变化。新的挑战可能会包括一些开发上的要求,如利用适应现有的框架来满足业务需求。测试一个网站,能从中知道出了哪些技术上的问题,并且我们针对这些问题进行优化和消除。便于后端的开发进程加快和测试。所以我们列出了完整的web开发所需要的工具和资源,助力开发者提高开发效率!学不止步,让我们努力成为一个优秀的开发者!

Web开发工具和资源整合

在这里说声抱歉,对于开发者开发使用的工具,我们无法一一囊括,这里是选取较为热门的工具和资源作为范例。我们希望能从中找到适合自己的工具助力自己的开发!

注:工具和资源排序不分先后。

12345611
 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |