2017-07-25 4 views
1

Ich habe eine einfache Funktion, um die ausgewählte Objekt-ID in Sitzungsspeicher zu buchen funktioniert es gut als Zahlen, aber wenn ich es zu einem Wort ändern es funktioniert nicht, irgendeine Idee warum und wie es zu beheben?Übergeben Objekt-ID zum Sitzungsspeicher

Ich dachte, es wäre gut, da sie beide eine Zeichenfolge sind, wie Sie meine Funktion am unteren Parsing der JSON sehen können, sehe ich nicht, warum es nur für Zahlen funktioniert?

-Code

$scope.productsandformats = [{ 
    "name": "name 1", 
    "format": [{ 
     "Fname": "test (ROADSIDE TEMP)", 
     "id": "Roadside" 
    }, { 
     "Fname": "test Sheet", 
     "id": "2" 
    }, { 
     "Fname": "Wrap test (Digital)", 
     "id": "3" 
    }] 
}, { 
    "name": "name 2, 
    "format": [{ 
     "Fname": "2 test", 
     "id": "4" 
    }, { 
     "Fname": "test Live (Digital)", 
     "id": "5" 
    }] 
}; 
$scope.productTypeChange = function() { 
    $scope.formats = $scope.productsandformats.find(ps => ps.name === $scope.formData.ProductType.name) 
     //NG-Change 
    $scope.myFunc = function() { 
     var jsonItem = JSON.parse($scope.formData.formatType.id); 
     sessionStorage.setItem('format', jsonItem); 
    } 
} 
}); 

Ich erhalte einen Fehler in Inspektor

SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse()

+2

Überprüfen Sie, ob die Eingabe für 'JSON.parse' gültige JSON ist. Auch in Ihrem Codebeispiel fehlt ein '' 'nach' Name 2'. – Halcyon

Antwort

0

Die ID Sie Parsen sind, ist nicht JSON, das ist wh y Sie erhalten den Fehler.

In der Tat ist das gesamte Scope-Objekt nur ein JavaScript-Objekt, nicht JSON (das ist ein Textformat).

Die ID, die Sie erhalten, ist die Zeichenfolge "Roadside", aber wenn es eine JSON-Zeichenfolge ist, würde es etwa wie "{\" key \ ": \" value \ "} aussehen. Die Tatsache, dass es die öffnende Klammer fehlt, sagt dem Parser, dass es falsch ist.

+0

Ok danke für die Information – Beep

0

versuchen, die unten json in $scope

$scope.productsandformats =[{ 
    "name": "name 1", 
    "format": [{ 
     "Fname": "test (ROADSIDE TEMP)", 
     "id": "Roadside" 
    }, { 
     "Fname": "test Sheet", 
     "id": "2" 
    }, { 
     "Fname": "Wrap test (Digital)", 
     "id": "3" 
    }] 
}, { 
    "name": "name 2", 
    "format": [{ 
     "Fname": "2 test", 
     "id": "4" 
    }, { 
     "Fname": "test Live (Digital)", 
     "id": "5" 
    }] 
}] 
Verwandte Themen