2016-07-22 54 views
0

我想從我的角度控制器設置的嵌套對象的價值,但我不斷收到以下錯誤:設置嵌套對象的值

Cannot read property 'field0' of undefined 

在我的控制器中的代碼是:

$scope.obj = $scope.obj || {}; 

$scope.autosave = function(){ 
    $window.sessionStorage.setItem("experienceOne", $scope.obj.experience.field0); 
} 

任何想法我做錯了什麼?我確定它的東西很小,但我似乎無法弄清楚。我如何設置嵌套對象中的值。僅供參考,對象結構是這樣的:

obj{ 
    name:"", 
    experience:{ 
     field0:"", 
     field1:"", 
     field2:"" 
    } 
} 

回答

0

你不設置默認分支experience財產。所以obj.experience.something拋出,因爲experience是未定義的。它應該是

$scope.obj = $scope.obj || {experience: {}} 
+0

謝謝你的答案。上述是否將'experience'設置爲'obj'中的嵌套對象?我一直認爲通過使用像這樣的'obj.something.somethingElse'這樣的點符號,當我像前面那樣設置值時,''input type = text ng-model = obj.experience.field0>'但沒有當我嘗試從我的控制器做同樣的工作時。 – Skywalker

+0

'ng-model'會爲你創建所有的嵌套結構。 [Demo](http://plnkr.co/edit/SybR2RAEpdpiRy9cpLba?p=preview)但是你有一個可以在模型控制器發揮其魔力之前運行的代碼。 –

0

您可以設置嵌套對象的屬性像這樣的東西:

obj.experience.field03 = "aa";