2016-04-24 16 views
0

Ich versuche durch und Nachschlagen eines Objekts eine id Schleife zu laden die Eigenschaft, um es zu bekommen und es ist zu werfen: Uncaught TypeError: Cannot read property 'label' of undefinedDer Versuch, Objekteigenschaft über id anderer Objekt

Wenn ich die Ausgabe versuchen: <%- fieldInfo["firstName"].label %> es funktioniert.

Hier ist mein Code, der den Fehler zu werfen:

fields = "firstName, lastName"; 
fieldInfo = { "firstName": [ 
{ 
    "label": "Test Label", 
    "name": "Test" 
} 
] }; 

<% _.each(fields.split(","), function(field){ %> 
    <%- fieldInfo[field].label %>: 
<% }); %> 

ich in js for-Schleife kann und es funktioniert auch, aber ich bin gerade Strich zu lernen und versuchen, dies stattdessen zu verwenden.

+0

Entsprechend Ihrer Objektdefinition sind 'fieldInfo [field] [0] .label' und' fieldInfo ["lastName"] 'nicht definiert. Überprüfen Sie, ob das Objekt vorhanden ist, bevor Sie auf die Objekteigenschaften zugreifen. – Sami

Antwort

1

Ihr fieldInfo ist ein Objekt, dessen einzige Eigenschaft ein Array von Objekten ist. Sie scheinen auf fieldInfo[field][0].label zuzugreifen.

Sind Sie in Ihre Browser-Entwickler-Tools gegangen und sind durchgegangen, um zu sehen, welche Werte auf jedem Schritt auf dem Weg vorhanden sind? Dadurch wird das Problem (das auf das Schema Ihrer Daten hinausläuft) viel klarer.