javascript - 全局变量

时间:2016-02-01 09:05:23

标签: javascript angularjs

可以声明一个全局变量,并在一个js文件中设置一个值,在另一个js文件中引用,无论多少次?

除了html文件,angular.js可以用在速度宏文件中吗?

3 个答案:

答案 0 :(得分:3)

如果在一个脚本中定义了一个全局变量,那么一旦原始脚本定义了该变量,它就可用于页面中的所有其他脚本。全局是全球性的 - 它可以在该页面中的所有Javascript中使用。

但是,任何Javascript变量只持续当前页面的持续时间。一旦您加载另一个页面,上一页中的所有全局变量都会消失,并创建一个全新的Javascript上下文,并将通过该新页面中加载的任何脚本进行初始化。没有Javascript变量将其值从一个页面保留到下一个页面。

如果要保存某些状态以使状态跨页面可用,则必须将该状态存储在服务器上(可以从服务器查询的状态),在cookie中(脚本可以读取它)来自cookie)或LocalStorage(脚本可以从LocalStorage键读取它)。

如果您的值位于名为username的变量中,那么您可以像这样存储和检索它:

// store the variable in localStorage
localStorage.setItem("user", username);


// and get the value from some other page
var username = localStorage.getItem("user");

答案 1 :(得分:0)

您需要将localStorage变量用作:

<script>
        var v=localStorage.setItem("variable","value");
</script>

这可以说是全局变量,可以在任何其他文件中访问:

<script>
        var val=localStorage.getItem("variable");
</script>

答案 2 :(得分:0)

首先,我要说一下我在评论中所说的内容: 该全局变量仅适用于同一页面中加载的javascript。

现在,如果您正在使用角度,则应使用常量(例如:http://twofuckingdevelopers.com/2014/06/angularjs-best-practices-001-constants/,这只有在您执行单页应用时才会出现。

您可以使用velocity来渲染html / js文件。但是你应该非常小心,因为速度也有自己的模板和角度。混合两种模板对于可维护性和关注点分离存在一定的风险。我建议你选择一个你将充分利用的东西,只在你真正需要的时候使用另一个而不是将它们用于同一个东西。

相关问题