Angularjs 在localstorage中更新单个值

Angularjs 在localstorage中更新单个值,angularjs,local-storage,Angularjs,Local Storage,所以我有一段代码来更新一个人离开localstorage的日期和时间 $scope.visitorout = function(){ var dateout1 = new Date(); var signout = JSON.parse(localStorage["allVisitors"]); for(var i=0;i<signout.length;i++) if (signout[i].id===signout[i].id) signout[i].dateout = dateout

所以我有一段代码来更新一个人离开localstorage的日期和时间

$scope.visitorout = function(){
var dateout1 = new Date(); 
var signout = JSON.parse(localStorage["allVisitors"]);
for(var i=0;i<signout.length;i++)
if (signout[i].id===signout[i].id) signout[i].dateout = dateout1;
localStorage["allVisitors"] = JSON.stringify(signout);
}; 
$scope.visitorout=function(){
var dateout1=新日期();
var signout=JSON.parse(localStorage[“allVisitors”]);

对于(var i=0;i此代码看起来像一个bug。您正在将一个对象与它自身进行比较(这总是正确的):


此代码看起来像一个bug。您正在将对象与自身进行比较(这将始终为真):


此代码看起来像一个bug。您正在将对象与自身进行比较(这将始终为真):


此代码看起来像一个bug。您正在将对象与自身进行比较(这将始终为真):


此函数需要知道要更新的访问者。无论在何处调用此函数,都需要至少传入userId(如果不是完整的用户对象),例如:
$scope.visitorOut(user.id)
或从html:

但是如果您想将字符串化的日期转换回日期对象



我还对变量名做了一些更改。Camelcase是一种有用的命名约定,有助于提高可读性,通过阅读其余代码,
signout
变量实际上似乎是一个
visitor
对象数组,而不是一个signout数组,因此我也对其进行了重命名。

此函数需要知道要更新哪个访问者。无论在何处调用此函数,都需要至少传入用户id(如果不是完整的用户对象),例如:
$scope.visitorOut(user.id)
,或者从html:

但是如果您想将字符串化的日期转换回日期对象



我还对变量名做了一些更改。Camelcase是一种有用的命名约定,有助于提高可读性,通过阅读其余代码,
signout
变量实际上似乎是一个
visitor
对象数组,而不是一个signout数组,因此我也对其进行了重命名。

此函数需要知道要更新哪个访问者。无论在何处调用此函数,都需要至少传入用户id(如果不是完整的用户对象),例如:
$scope.visitorOut(user.id)
,或者从html:

但是如果您想将字符串化的日期转换回日期对象



我还对变量名做了一些更改。Camelcase是一种有用的命名约定,有助于提高可读性,通过阅读其余代码,
signout
变量实际上似乎是一个
visitor
对象数组,而不是一个signout数组,因此我也对其进行了重命名。

此函数需要知道要更新哪个访问者。无论在何处调用此函数,都需要至少传入用户id(如果不是完整的用户对象),例如:
$scope.visitorOut(user.id)
,或者从html:

但是如果您想将字符串化的日期转换回日期对象




我还对变量名做了一些更改。Camelcase是一种有用的命名约定,有助于提高可读性,从读取代码的其余部分来看,
signout
变量实际上似乎是一个
visitor
对象数组,而不是一个signout数组,因此我也对其进行了重命名。

此代码中没有任何内容指示哪个访问者's
signout
您想更新。好的,我明白您的意思。每个访问者都有一个唯一的ID,这是一个由'Math.random'生成的随机数。如果我想记录访问者单击其姓名时离开的日期,我将如何修改代码?谢谢,现在我知道您想做什么了,我将作为答案回答。这里面没有任何内容是一个代码,用于指示您要更新的访问者的
注销
。好的,我明白您的意思。每个访问者都有一个唯一的ID,这是一个由“Math.random”生成的随机数。如果我想记录访问者单击其姓名时离开的日期,我将如何修改代码?谢谢,现在我知道您不知道,我将作为答案回答正在尝试。此代码中没有任何内容表明您要更新哪个访问者的
注销
。好的,我明白您的意思。每个访问者都有一个唯一的ID,这是一个由“Math.random”生成的随机数。如果我想记录访问者单击其姓名时离开的日期,我将如何修改代码?谢谢。我将作为ans回复现在我知道你想做什么了。这段代码中没有任何东西表明你想更新哪个访问者的
注销
。好的,我明白你的意思。每个访问者都有一个唯一的ID,这是一个由“Math.random”生成的随机数。如果我想记录访问者单击其姓名时离开的日期,我该如何修改ID代码?谢谢,现在我知道你想做什么了,我会回答你。那么你建议我怎么做?看起来你想在签出数组中找到一个特定的元素。你想找到哪个元素?是否有一个变量代表你想找到的项?假设该变量名为targetSignoutId,将代码更改为if(signout[i].id==targetSignoutId)是的,我正在尝试查找用户登录后随机生成的每个访问者的id。当访问者在注销页面上单击其姓名时,我如何查找该id?注销页面显示每个访问者的姓名,并单击调用“visitorout”函数。Thankshow我是否定义targetSignoutId变量?那么您如何opose i do it?看起来您正在尝试在签出数组中查找特定元素。您正在尝试查找哪个元素?是否存在表示您尝试查找的项的变量?假设该变量名为targetSignoutId,请将代码更改为if(signout[i].id==targetSignoutId)是的,我正在尝试查找用户登录后随机生成的每个访问者的id。当访问者在注销页面上单击其姓名时,我如何查找该id?注销页面显示每个访问者的姓名,并单击调用
$scope.visitorOut = function(id){
var allVisitors = JSON.parse(localStorage["allVisitors"]);
var visitor;
for(var i=0; i<allVisitors.length; i++){
visitor = allVisitors[i];
if (allVisitors[i].id === visitor.id) {
visitor.dateout = new Date();
console.log(visitor.id)
break;
}
}
localStorage["allVisitors"] = JSON.stringify(allVisitors);
<div class="list">
  <a class="item item-icon-left item-icon-right" ng-repeat="visit in visits | orderBy: '-date'" ng-click="visitorOut(id); closesignout()" ng-hide="visit.hide">
<i class="icon ion-person"></i>
{{visit.fname}} {{visit.lname}}
<i class="icon ion-log-out" ng-click="hideMe(visit)"></i>
if (signout[i].id===signout[i].id)
$scope.visitorOut = function(userId){
    var allVisitors = JSON.parse(localStorage["allVisitors"]);
    var visitor;
    for(var i=0; i<allVisitors.length; i++){
        visitor = allVisitors[i];
        if (visitor.id === userId) {
            visitor.dateout = Date.now();
            break;
        }
    }
    localStorage["allVisitors"] = JSON.stringify(signout);
};
var myDate = new Date(visitor.dateOut);