2014-12-06 29 views
0

無法從javascript中的對象獲取屬性,但可以在記錄其父項時將其打印到控制檯。它似乎是一個普通的對象。爲什麼不能訪問_id?無法從javascript中的對象獲取屬性,但可以在記錄其父項時將其打印到控制檯

下面的代碼是在一個函數:$scope.create = function() {被調用的形式在我的角度視圖提交:<form class="form-horizontal" data-ng-submit="create()" novalidate>

因此,繼承人的問題,在我的函數創建:

 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.create(本地主機:3000 /模塊/收入/控制器/ incomes.client.controller.js:12:29) 在localhost:3000/lib/angular/angular.js:10880:21 at callback(ocalhost:3000/lib/angular/angular.js:19237:17) at Scope。$ eval(localhost:3000/lib/angular/angular.js:12788:28) at Scope。$ apply(localhost:3000/lib/angular/angular.js:12886:23) at HTMLFormElement。 (本地主機:3000/lib/angular/angular.js:19242:23) at localhost:3000/lib/angular/angular.js:2853:10 at forEach 325:18) 在HTMLFormElement.eventHandler(本地主機:3000/LIB /角度/ angular.js:2852:5)

回答

1

這是因爲一些代碼的調用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'; 
+0

好吧,也許我失去了一些東西,但你的第一個例子是沒有意義的我。你在哪裏運行? – 2014-12-07 15:24:34

+0

@ionutvmi只需將其粘貼到控制檯即可。或者去http://jsfiddle.net/wkuhh7o2/ – Oriol 2014-12-07 16:55:25

+0

現在我更混亂。第一個控制檯日誌應該記錄一個空對象...不是控制檯日誌同步?我點擊運行幾次,我得到這個http://puu.sh/dkSHk/6d5fd88601.png – 2014-12-07 17:11:01

相關問題