0

Angular JS로 앱을 제작 중이며 나중에 localStorage에 특정 데이터를 저장하여 나중에 가져 오려고합니다. 문제는 코드를 작성하는 데 문제가 있다는 것입니다. 귀하가 버튼을 클릭 할 때 이벤트에 보조자를 추가하려고하지만 Inspector는 항상이 오류를 표시합니다. SyntaxError : JSON의 예상치 못한 토큰 u가 0 위치에 있습니다. , Object.parse (기본).Angular JS의 LocalStorageModule을 사용하여 데이터 저장

저는 app.js와 분리 된 controller.js를 가지고 있습니다. 그런 다음 컨트롤러를 app.module에 삽입했습니다.

나를 도울 수 있다면 좋을 것입니다. 미리 감사드립니다.

'use strict'; 
 

 
/* Controllers */ 
 

 
angular.module('Erasmore.controllers', []) 
 
    .controller('Posts', ['$scope', '$http', 
 
    function($scope, $http, localStorageService) { 
 
     $http.get("json/posts.json").success(function(data) { 
 
     $scope.posts = data; 
 
     }); 
 

 
     $scope.assistants = [{ 
 
     id: 1, 
 
     name: "James Smith", 
 
     nationality: "English" 
 
     }, { 
 
     id: 3, 
 
     name: "Juan García", 
 
     nationality: "Spanish" 
 
     }, { 
 
     id: 3, 
 
     name: "Eduardo Cruz", 
 
     nationality: "Spanish" 
 
     }, { 
 
     id: 4, 
 
     name: "Jurgen Low", 
 
     nationality: "German" 
 
     }, ]; 
 

 
     var newParticipant = localStorage['assistantList']; 
 
     if (newParticipant !== undefined) { 
 
     $scope.newAssistant = JSON.parse(newParticipant); 
 
     } 
 

 
     $scope.newAssistant = {}; 
 

 
     $scope.addAssistant = function() { 
 
     $scope.assistants.push($scope.newAssistant); 
 
     $scope.newAssistant = ""; 
 
     localStorage['assistantList'] = JSON.stringify($scope.newAssistant); 
 
     console.log(localStorage); 
 
     }; 
 

 
    } 
 
    ])
<div> 
 
    <p>Are you coming?</p> 
 
    <input placeholder="Enter your name" id="name" type="text" class="validate" ng-model="newAssistant.name"> 
 
    <input placeholder="Enter your nationality" id="nationality" type="text" class="validate" ng-model="newAssistant.nationality"> 
 
    <button class="waves-effect waves-light btn" ng-click="addAssistant()">Confirm</button> 
 
    <button class="waves-effect waves-teal btn-flat modal-trigger">See Assistants</button> 
 
    <ul> 
 
    <li id="asistentes" ng-repeat="assistant in assistants">{{assistant.name}} <span>-</span> {{assistant.nationality}}</li> 
 
    </ul>

+0

''localStorageService''는 컨트롤러에 다음과 같이 추가하면됩니다. '.controller ('Posts', [ '$ scope', '$ http', 'localStorageService', function ($ scope, $ http, localStorageService) {' –

+0

그래, 나중에 깨달았지만 여전히 작동하지 않습니다. ... –

답변

0

문제는 당신 만 주입 한

.controller('Posts', ['$scope', '$http', 
function($scope, $http, localStorageService) { 

로컬 스토리지 서비스를 주입하지 않은 것입니다 : 여기

나에게 오류를 제공 코드의 조각 $ scope & $ http

+0

예 localStorageService를 삽입했으나 작동하지 않습니다. 콘솔에서 다음과 같은 오류가 발생합니다. –

+0

SyntaxError : 예기치 않은 토큰 u가 위치 0에 있습니다. Object.parse (기본) –

+0

'JSON.parse'를 사용하여 구문 분석을 시도하고 있습니다. 실제로 유효한 json 객체가 아닙니다. 예 :'$ scope.newAssistant = "";는'$ scope.newAssistant = {};'이어야합니다. – harishr

관련 문제