我有这个复杂的对象数组(我只显示解释问题所需的节点):
<div style="position: relative;width:100%">
<div style="border-color:green;border-style:solid;
border-width:15px;width:70%;"></div>
<div style="position: absolute; top: 50%;
transform:translateY(-50%);left: 0px;">
Hello, world.
</div>
</div>
当我为每个人执行此操作时,它会更改&amp; dc&#39; dc的值。特定位置上的数组的节点。但是在var arr = [
{
json: {
doc: {
id: 1,
atualizacao:{
dc: false
}
}
}
}
]
angular.forEach(arr, function(value, key) {
if(value.json.doc.id == 1){
value.json.doc.atualizacao.dc = true;
}
});
结束时,数组forEach
仍然没有改变。
我放了很多console.logs并发现:
如果我记录变量:value.json.doc.atualizacao.dc - IT SHOWS&#39; true&#39;
如果我记录变量:value.json.doc.atualizacao - IT SHOWS&quot; dc = true&#39;
如果我记录变量:value.json.doc - IT SHOWS&#39; atualizacao.dc = true&#39;
如果我记录变量:value.json - IT SHOWS&#39; doc.atualizacao.dc = false&#39;
如果我记录变量值 - IT SHOWS&#39; json.doc.atualizacao.dc = false&#39;
答案 0 :(得分:0)
答案 1 :(得分:0)
我开始认为$ rootScope没问题。 实际上,对象比我上面发布的对象复杂得多,大而且“重”。 我认为当我将其值更改为true时,在forEach结束时它仍在“应用”我的更改。这就是为什么当我记录对象的PART时它显示为true,当我记录根对象时,它显示为false。 它至少会有意义。