2016-07-22 7 views
0

Ich versuche, einen Wert eines verschachtelten Objekts von meinem Winkelregler einstellen aber ich erhalte die folgende Fehlermeldung erhalten:Einstellung Verschachtelte Objektwerte von AngularJS-Controller

Cannot read property 'field0' of undefined 

Der Code in meinem Controller ist:

Irgendeine Idee, was ich falsch mache? Ich bin sicher, es ist etwas klein, aber ich kann es nicht herausfinden. Wie kann ich den Wert in einem verschachtelten Objekt festlegen? Gerade als Referenz ist die Objektstruktur wie folgt aus:

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

Antwort

0

Sie nicht experience Eigenschaft in Standardzweig eingestellt. So obj.experience.something wirft, weil experience nicht definiert ist. Es sollte

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

Danke für die Antwort. Setzt das oben genannte "Erfahrung" als verschachteltes Objekt in "obj" ein? Ich dachte immer mit der Punktnotation wie so 'obj.etwas.EtwasElse' das funktioniert, wenn ich Werte aus dem Front-End wie folgt setze: ' aber tut es nicht arbeite, wenn ich versuche, dasselbe von meinem Controller zu machen. – Skywalker

+0

'ng-model' wird die gesamte verschachtelte Struktur für Sie erstellen. [Demo] (http://pnnr.co/edit/SybR2RAEpdpiRy9cpLba?p=preview) Aber Sie haben einen Code, der ausgeführt werden könnte, bevor der Modell-Controller seine Magie entfaltet. –

0

Sie sein, eine Eigenschaft eines verschachtelten Objekts mit etwas wie folgt einstellen:

obj.experience.field03 = "aa";