gpt4 book ai didi

javascript - 无法从 javascript 中的对象获取属性,但可以在记录其父级时将其打印到控制台

转载 作者:行者123 更新时间:2023-12-03 11:16:11 24 4
gpt4 key购买 nike

无法从 JavaScript 中的对象获取属性,但我可以在记录其父级时将其打印到控制台。它看起来确实是一个普通的物体。为什么我无法访问_id?

以下代码位于函数中:$scope.create = function() {在我的 Angular View 中提交表单时会调用它:<form class="form-horizontal" data-ng-submit="create()" novalidate>

这就是问题所在,在我的函数 create 中:

     console.log($scope.account);
var tmp=$scope.account;
console.log('id:' +tmp._id);

给我:

      {"user":{"displayName":"David Karlsson","_id":"548217e5402b8b8c194d9c11"},"_id":"5483235cc0d8580000152f0b","__v":0,"created":"2014-12-06T15:40:12.682Z","amount":0,"interests":[{"rate":123,"date":"2014-12-30T23:00:00.000Z","_id":"5483235cc0d8580000152f0c"}],"desc":"","name":"Acount"}

id:undefined

更改发布方法没有帮助:

    $scope.create = function() {
// Create new Income object
var copy = Object.assign({}, this.account);
console.log(copy);
}

给予:

类型错误:未定义不是函数 在 Scope.$scope.create (localhost:3000/modules/venues/controllers/invenues.client.controller.js:12:29) 在本地主机:3000/lib/angular/angular.js:10880:21 在回调时(ocalhost:3000/lib/angular/angular.js:19237:17) 在 Scope.$eval (localhost:3000/lib/Angular/Angular.js:12788:28) 在作用域.$apply (localhost:3000/lib/angular/angular.js:12886:23) 在 HTMLFormElement 处。 (本地主机:3000/lib/angular/angular.js:19242:23) 在本地主机:3000/lib/angular/angular.js:2853:10 在 forEach (本地主机:3000/lib/angular/angular.js:325:18) 在 HTMLFormElement.eventHandler (localhost:3000/lib/angular/angular.js:2852:5)

最佳答案

这是因为在调用 console.log 之后、显示对象之前,某些代码更改了 $scope.account

例如:

var obj = {prop: {}};
console.log(obj.prop); // Produces {foo: "bar"}
var cached = obj.prop;
console.log(cached.foo); // Produces undefined
obj.prop.foo = 'bar';

缓存值不会发生这种情况,因为它是字符串而不是对象。

要修复它,您可以使用 EcmaScript6 Object.assign “复制”您的对象:

var obj = {prop: {}};
console.log(Object.assign({}, obj.prop)); // Produces {}
var cached = obj.prop;
console.log(cached.foo); // Produces undefined
obj.prop.foo = 'bar';

关于javascript - 无法从 javascript 中的对象获取属性,但可以在记录其父级时将其打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27336948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com