globalService.js 5 KB

angular.module('myApp.services')
.service('globalService',
    [ '$http', '$rootScope', 'localStorageService',
        function($http, $rootScope ,localStorageService) {
                
            var setHeaderToken = function (token){
        		$http.defaults.headers.common = {
					"token": token ,
					"version": "1.0.0" ,
					"source" : "WX"
				};
            }
            var init = function(){
                $rootScope.params = {};
                $rootScope.config = {};
                $rootScope.data = {};
				$rootScope.inited = true;
                //--------------------自行车服务--------------
                //                生产环境
                var dingdaAPI = "http://bike.dy.dingdatech.com:880";
                //     测试环境
                //var dingdaAPI = "http://bike.api.dingdachuxing.com";
                globalConfig.setParam("dingdaAPI", dingdaAPI);
                //--------------------财务服务--------------
                //     生产环境
                var financeAPI = "http://finance.dy.dingdatech.com";
                //     测试环境
                //var financeAPI = "http://finance.api.dingdachuxing.com";
                globalConfig.setParam("financeAPI", financeAPI);
                //--------------------反馈服务--------------
                //     生产环境
                var feedbackAPI = "http://feedback.dy.dingdatech.com";
                //     测试环境
                //var feedbackAPI = "http://feedback.api.dingdachuxing.com";
                globalConfig.setParam("feedbackAPI", feedbackAPI);
                //--------------------认证服务--------------
                //     生产环境
                var dingdaLoginAPI = "http://auth.dy.dingdatech.com:880";
                //     测试环境
                //var dingdaLoginAPI = "http://auth.api.dingdachuxing.com";
                globalConfig.setParam("dingdaLoginAPI", dingdaLoginAPI);

                $rootScope.$watch("data.user",function(newVal, oldVal){
                    if(!newVal){
                        return;
                    }
					if(newVal.token) {
						setHeaderToken(newVal.token);
					}
                })
                
                loadPersistData();
                loadCityConfig();
                loadPathParams();
                initWeixinMenu($http);
            }

            var loadPersistData = function() {
                var keys = localStorageService.keys();
                for(var x in keys){
                    globalConfig.setData(keys[x], localStorageService.get(keys[x]));
                }
                if(globalConfig.getData("user")){
            		setHeaderToken(globalConfig.getData("user").token);
                }

            }

            var loadPathParams = function() {
                var url = window.location.href,
                    parts = url.split('?');
                if(parts.length == 2){
                    var hash = parts[1].indexOf('#')
                    if(hash != -1){
                        parts[1] = parts[1].substring(0, hash)
                    }

                    var pairs = parts[1].split('&')
                    pairs.forEach(function(pair){
                        var kv = pair.split('=')
                        if(kv.length == 2){
                            globalConfig.setData(kv[0], kv[1]);
                        }
                    })
                }

            }

            var loadCityConfig = function() {
//              $http.get("js/service/city.json").success(function (data) {
//                  $rootScope.config.province = {};
//                  for (var i = 0; i < data.length; i++) {
//                      $rootScope.config.province[data[i].id] = data[i];
//                  };
//              })
            }
            
            var globalConfig = {
                init : init,
                getParam : function(key){
                    return $rootScope.params[key];
                },
                setParam : function(key, value){
                    $rootScope.params[key] = value
                },
                getConfig : function(key){
                    return $rootScope.config[key];
                },
                setConfig : function(key, value){
                    $rootScope.config[key] = value;
                },
                getData : function(key){
                    return $rootScope.data[key];
                },
                setData : function(key, value){
                    $rootScope.data[key] = value;
                },
                saveData : function(key, value){
                    if(value){
                        this.setData(key, value)
                    }
                    localStorageService.set(key, value);
                },
                clearData : function(key){
                    this.setData(key, null);
                    localStorageService.set(key, null);
                    $http.defaults.headers.common = { };
                }
            }
            return globalConfig;
        }
    ]
);