Tag: 全局变量

AngularJS中的全局变量

我有一个问题,我在一个控制器的范围初始化一个变量。 然后在用户登录时在另一个控制器中进行更改。此变量用于控制导航栏等内容,并根据用户的类型限制对站点部分的访问,因此重要的是它保留其值。 问题在于,初始化它的控制器被角度再次调用,然后将该变量重置为其初始值。 我认为这不是正确的方式来声明和初始化全局变量,以及它不是真正的全球性,所以我的问题是什么是正确的方式,是否有任何与目前版本的角度工作的好例子?

为什么全局变量被认为是不好的做法

我一直在看警告,不要在JavaScript中使用全局变量,但似乎人们说这个唯一原因是因为阻塞了全局名称空间。 我可以想象,通过把所有的变量放到一个大对象中,这个很容易被修复。 现在的问题是:除了方便之外,还有其他什么原因不使用全局变量吗? 他们是否有任何性能或兼容性问题?

有没有一个规范,元素的id应该是全局变量?

如果我在Chrome中有<div id='a'> ,那么在JavaScript中我可以做a. stuff() a. stuff() (就好像a是一个全局变量)。 然而,这不适用于FireFox – 我将需要使用document.getElementById('a') 。 这里的正确行为是什么? (根据W3规范) 此外,我感兴趣的是,如果我有一个ID a ID a div,但是在我的脚本中有一个叫做“太”的全局变量,Chrome将如何解决歧义。 行为是随机的,怪异的? 如何翻译由连字符(“ – ”),冒号(“:”)和句点(“。”)组成的元素(好吧,我知道他们可以用document.getElementById访问,但浏览器将如何翻译它进入代表它们的全局变量)