Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在函数之间使用变量_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在函数之间使用变量

Javascript 如何在函数之间使用变量,javascript,angularjs,Javascript,Angularjs,我在函数之间使用变量有问题。正如您在下面看到的,User.username是可用的,并且在注册页面上很好,但是当您转到登录页面时,我告诉它首先警告User.username的值,它会警告未定义?我在这里感到困惑。我很确定我在这里遗漏了一个概念。无论如何,非常感谢你 下面是一个例子: 这是我的script.js: 您必须记住,web应用程序是浏览器和web服务器之间的通信。浏览器和服务器可以位于不同的计算机上(即使在测试时它们不在) 有两种方法可以实现这一点 当浏览器和服务器进行通信时,一些信息被

我在函数之间使用变量有问题。正如您在下面看到的,User.username是可用的,并且在注册页面上很好,但是当您转到登录页面时,我告诉它首先警告User.username的值,它会警告未定义?我在这里感到困惑。我很确定我在这里遗漏了一个概念。无论如何,非常感谢你

下面是一个例子:

这是我的script.js:


您必须记住,web应用程序是浏览器和web服务器之间的通信。浏览器和服务器可以位于不同的计算机上(即使在测试时它们不在)

有两种方法可以实现这一点

当浏览器和服务器进行通信时,一些信息被保存并在两端来回传递——这称为cookie。这是在页面之间保存数据最常用的方法。浏览器请求一个页面。当它从服务器获得回复时,它包含一个cookie。下次浏览器请求页面时,它会在其请求中包含cookie。这样,服务器就知道该请求与先前的请求相关


服务器足够智能,可以跟踪不同浏览器的所有“会话”。然后,它保存有关该通信的会话数据——当它从同一浏览器收到下一个请求时,它将转到会话数据,并检索有关该浏览器及其正在执行的操作的信息。(这通常是通过cookies完成的。)

当页面重新加载时,将重新执行整个javascript。所以在注册过程中填充的用户对象在登录功能中不再可用,因为单击注册按钮时页面已重新加载。
因此,我们需要将用户名存储在cookie中,以便我们可以随时访问它。即使将其从javascript运行时中删除,它也会出现在浏览器缓存中。
由于安全问题,在cookie中存储密码是有风险的。

成功注册后,将用户名保存在cookie中。
像这样的东西

document.cookie ="username =" +username + "; " +"email ="+ email;
在登录功能中,获取cookie值并检查用户的电子邮件是否与输入的相同

function getCookie(name ) {
   var pairs = document.cookie.split("; "),
   count = pairs.length, parts; 
   while ( count-- ) {
    parts = pairs[count].split("=");
    if ( parts[0] === name )
        return parts[1];
}
 return false;
}


var username=getCookie("username");
var email=getCookie("username");
if($scope.logInemail ==email)
  {
     alert(username);
  }

这就是cookies存在的原因。了解them@Hogan我不懂饼干。我不想再谈别的话题了。我在问是否有人知道一个概念?饼干就是这个概念。Cookie是在页面之间保存数据的方式。这就是你要问的,对吗?等等,我现在更困惑了@HoganAs只要你通过设置
window.location
更改页面,或者当用户单击更改页面的链接时,整个Javascript环境(包括所有变量)就会被破坏并替换为新环境。从一个页面到下一个页面没有JS变量存在。Cookie和本地存储是两个客户端位置,您可以在其中存储内容,然后从将来的页面中检索。ReferenceError:getCookie未在作用域中定义。$Scope.logIn()代码已用getCookie函数更新!。您可以在全局范围内使用该函数。它可以在任何地方用于获取cookie值。我告诉它提醒var用户名,它说这是错误的。请帮忙。代码位于script.jsalert(“成功创建了用户名为“+user.username”的用户帐户);您需要在此行之后设置cookies。通过添加document.cookie=“username=“+username+”;“+”email=“+email;让我们来看看。@Dsafds——正如我在第一篇评论中所说的“这就是为什么会有cookies存在。请阅读它们”。
function getCookie(name ) {
   var pairs = document.cookie.split("; "),
   count = pairs.length, parts; 
   while ( count-- ) {
    parts = pairs[count].split("=");
    if ( parts[0] === name )
        return parts[1];
}
 return false;
}


var username=getCookie("username");
var email=getCookie("username");
if($scope.logInemail ==email)
  {
     alert(username);
  }