角度无法读取数组中的对象
Angular cant read object in array
我有一个数组,里面有两个对象,分配给$scope.items;
当我这样做时
console.log($scope.items)
输出为:
[
{s: "item1", q: 3, $$hashKey: "object:3", population: Object},
{s: "item2", q: 3, $$hashKey: "object:4", population: Object}
]
但是当我这样做时
console.log($scope.items[0])
输出(有时*)为:
{s: "item1", q: 3, $$hashKey: "object:3"}
'* 这并不总是发生,取决于页面加载。 刷新页面时,结果有时是人口,有时没有。
第一个输出始终完整,总体完好无损。(无论曼尼如何按F5:))
我同时调用控制台.log并且顺序与上述相同。
所以我不明白当我直接调用其中一个对象时它们是不完整的?
它看起来像一个解析错误,但第一个输出如何始终完整?
额外信息$scope.Items 是另一个数组的副本。
我使用 $http.get 来构建对象,但也尝试在他的成功函数中调用 console.logs。
$http.get 放置在 foreach 中,因此在完整数组完成之前被多次调用
我使用http.get来建立人口。
我希望有人能为我澄清一下,这怎么可能。 或如何继续寻找查找错误的可能性。
这不是角度的问题,而是谷歌浏览器的功能/问题。在谷歌浏览器中,当您控制台任何对象时,它会显示 name:object,当您展开它时,它指向实时内存位置,即使该内存位置在控制台.log后更新,它也会随着更新的输出而扩展。
var d=[];
for(var i=0;i<100;i++){
d[i]="val_"+i
}
console.log(d); //d[60] should be val_60 but will get value 'changed value' when you expand
console.log(d[60]); //will print 'val_60'
d[60]='changed value'
这是一个示例代码,您可以在浏览器中运行,您将在控制台中获得奇怪的结果。
在您的情况下,您正在打印一个数组,谷歌浏览器的控制台将指向该数组的内存位置。 并打印该数组,当您尝试扩展该数组时,它将从内存中获取用餐时间信息并显示数组的当前状态。
解决方案是在 chrome 中使用调试器并在该变量更改之前检查该变量。
另一种解决方案是使用 JSON.stringify 将该数组转换为字符串,
当你在通过某种方法处理值之前记录值时,你面临的是一个种族问题,你应该熟悉承诺和$http$http及其承诺的工作示例
http://plnkr.co/edit/QPB2JW8OAA4TiLgH1g6j?p=preview
$http.get()
.success(function() {
$scope.data = [{
s: "item1",
q: 3,
$$hashKey: "object:3"
}, {
s: "item2",
q: 3,
$$hashKey: "object:4"
}]
angular.forEach($scope.data, function(obj){
obj.population = {}
})
})
.finally(function() {
console.log($scope.data[0].population)
})
似乎在第一次控制台日志之后,某些事件正在从项目中删除人口字段,或者可能正在使用默认值重新启动项目。为了更好地调试它,请使用项目的 JSON.strinfigy 结果记录对象,例如 console.log(JSON.stringify($scope.items)
如果没有 stringify,任何更改对象的代码/事件也会更新控制台日志。
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序