angularjs设置全局变量的三种方式

JavaScript042

angularjs设置全局变量的三种方式,第1张

通过js方式实现设置全局变量 var a=q

vartest2 ='tank'//方法1,定义全局变量

varphonecatApp = angular.module('phonecatApp', [//定义一个ng-app

'ngRoute',

'phonecatControllers',

'tanktest'

])

phonecatApp.value('test',{"test":"test222","test1":"test111"})//方法2定义全局变量

phonecatApp.constant('constanttest','this is constanttest')//方法3定义全局变量

无法定义这种的js变量

解决思路:

1、由服务器端session对这个变量进行保存,然后再不同页面获取该值

2、保存在cookie中,再不同页面获取,如果保密要求低,推荐这种方式

代码举例:

function setCookie(name,value) 

    var Days = 30 

    var exp = new Date() 

    exp.setTime(exp.getTime() + Days*24*60*60*1000) 

    document.cookie = name + "="+ escape (value) + "expires=" + exp.toGMTString() 

//读取cookies 

function getCookie(name) 

    var arr,reg=new RegExp("(^| )"+name+"=([^]*)(|$)")

 

    if(arr=document.cookie.match(reg))

 

        return unescape(arr[2]) 

    else 

        return null 

使用

a.html 

function add(){ setCookie('name',document.getElementById("yonghuming").value)}

b.html 

function huode(){ alert(getCookie('name')) }

首先吧,你得知道什么是全局变量:

javascript的变量作用域是根据方法块儿来限定的,方法块儿内声明的变量叫局部变量,方法块儿外声明的变量叫全局变量。

有三种方式声明全局变量:

方法1,在方法块儿外拿var声明:

<script>

    var a=1

    function(){

        //我是代码

    }

</script>

方法2,不实用var,进行隐式声明:

<script>

    b=1

    function(){

        c=2

        //b和c都是全局变量。

    }

</script>

方法3,用window.变量方式声明:

<script>

    function(){

        window.d=1

    }

    console.log(d)

    //d为全局变量。

</script>