AngularJS forEach在if

时间:2017-07-24 20:22:55

标签: angularjs

所以这个问题几乎解释了我的问题。我正在处理代码,以便从数据库创建特定记录的更改日志。为了保持代码清洁并坚持角度方面,我选择使用angular.forEach函数循环记录并比较每个字段(注意vm.uneditClient和vm.editClient是完全相同的记录类型,每个来自同一个数据库,所以循环一个而不访问另一个正确的字段不是问题)。这就是我对此非常好奇的地方:

function setChangeLog() {
  angular.forEach(vm.uneditClient, function (value, key) {
    if (vm.uneditClient[key] !== vm.editClient[key]) {
      console.log(value + " is not equal to " + vm.editClient[key]);
      vm.changeLog.push('Changing ' + value + ' to ' + vm.editClient[key]);
    }
  });
}

假装我将空白字段更改为" 234"这就是控制台记录的内容:

 is not equal to 234

它将值留空。现在我知道有些人可能正在考虑更改控制台日志语句中的值变量,我已将其更改回vm.uneditClient [key]并且它没有任何区别,因为某些原因如果该值完全消失了。为了检查我的理智,我甚至在if下面创建了一个局部变量:

function setChangeLog() {
  angular.forEach(vm.uneditClient, function (value, key) {
    var val = vm.uneditClient[key];
    console.log(val);
    if (vm.uneditClient[key] !== vm.editClient[key]) {
      console.log(val);
      console.log(value + " is not equal to " + vm.editClient[key]);
      vm.changeLog.push('Changing ' + value + ' to ' + vm.editClient[key]);
    }
  });
}

为了确认我的理智,我运行这个函数只是为了发现这个值确实完好无损地超过了if并且完美记录了!...但是如果我的局部变量突然变成空白并且只输出一个空行到控制台。

我真的想知道我做错了什么或者是否有其他人遇到过这个问题?

0 个答案:

没有答案